{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Chapter 1 – The Machine Learning landscape**\n",
    "\n",
    "**机器学习概览**\n",
    "\n",
    "_This is the code used to generate some of the figures in chapter 1.\n",
    "\n",
    "这是生成第一章某些图表的代码"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Setup\n",
    "# 设置"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:\n",
    "\n",
    "首先，让我们确保这个notebook能够在python2和3中都能完美运行，接着导入一些模块，然后确保matplotlib能显示图表，最后写一个保存图表的函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "# To support both python 2 and python 3 为了兼容python2与3 参考https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820023084e5263fe54fde4e4e8616597058cc4ba1000\n",
    "from __future__ import division, print_function, unicode_literals\n",
    "\n",
    "# Common imports\n",
    "import numpy as np\n",
    "import os\n",
    "\n",
    "# to make this notebook's output stable across runs 随机数种子\n",
    "# 为了使输出在每一次运行保持一致\n",
    "# 计算机中的随机数都是伪随机数，需要随机数种子（seed）来生成，如果我们把seed保持不变，那么np.random下的方法每次生成的随机序列将保持不变。\n",
    "np.random.seed(42)\n",
    "\n",
    "# To plot pretty figures 为了画出漂亮的图表。\n",
    "#matplotlib中的一张图表叫一个figure\n",
    "%matplotlib inline \n",
    "#有了上面这句，就可以不用plt.show()也可以显示图表\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['axes.labelsize'] = 14 # 配置图表的相关参数;轴标签的大小\n",
    "plt.rcParams['xtick.labelsize'] = 12 # x轴刻度标签的大小\n",
    "plt.rcParams['ytick.labelsize'] = 12 # y轴刻度标签的大小\n",
    "\n",
    "# Where to save the figures 需要把图表保存在本机的什么路径\n",
    "PROJECT_ROOT_DIR = \".\" # 项目根目录\n",
    "CHAPTER_ID = \"fundamentals\" # 章节id\n",
    "\n",
    "# 保存figure的函数，传入图表的id（即保存的文件名），默认紧凑布局\n",
    "def save_fig(fig_id, tight_layout=True):\n",
    "    path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\") #路径\n",
    "    print(\"Saving figure\", fig_id)\n",
    "    if tight_layout:\n",
    "        plt.tight_layout()\n",
    "    plt.savefig(path, format='png', dpi=300) # dpi分辨率\n",
    "\n",
    "# Ignore useless warnings (see SciPy issue #5998) 忽略无用的警告\n",
    "import warnings\n",
    "warnings.filterwarnings(action=\"ignore\", module=\"scipy\", message=\"^internal gelsd\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Code example 1-1\n",
    "# 示例 1-1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This function just merges the OECD's life satisfaction data and the IMF's GDP per capita data. It's a bit too long and boring and it's not specific to Machine Learning, which is why I left it out of the book.\n",
    "\n",
    "这个函数用来合并OECD（经合组织）的生活满意度数据和IMF（国际货币基金组织）的人均（per capita）GDP数据。它很长很无聊而且跟机器学习也没啥关系，所以我没有放在书中。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
    "    oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"] # 只要inequality（社会,经济...的不平等）为TOT的行，暂未明tot之意\n",
    "    oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\") # pd.pivot 取oecd_bli中的三列，以Country的值为索引，Indicator的值为列名，Value为值重塑DataFrame，相当于取一维表中某些字段重塑为二维表\n",
    "    gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True) # 重命名列名\n",
    "    gdp_per_capita.set_index(\"Country\", inplace=True) # 把Country列设为索引\n",
    "    full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,\n",
    "                                  left_index=True, right_index=True) # 合并生活满意度与人均GDP数据为一个DataFrame，left_index和right_index同时设为True，则以index为链接键，即以两个DataFrame的索引为依据来合并\n",
    "    full_country_stats.sort_values(by=\"GDP per capita\", inplace=True) # 按人均GDP排序\n",
    "    remove_indices = [0, 1, 6, 8, 33, 34, 35] # 去掉的索引，用于去掉索引的这部分数据\n",
    "    keep_indices = list(set(range(36)) - set(remove_indices)) # 保持的索引，也就是用来训练的数据的索引\n",
    "    return full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices] # 为什么去掉一部分数据来进行训练，见In[26]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The code in the book expects the data files to be located in the current directory. I just tweaked it here to fetch the files in datasets/lifesat.\n",
    "\n",
    "书中的代码需要将数据文件放在代码所在文件夹，这里有些许不同，是从datasets/lifesat文件夹读取。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "datapath = os.path.join(\"datasets\", \"lifesat\", \"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAERCAYAAABowZDXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XucHGW95/HPd8g4iQxISCJiYowaAYkmQccroAgqosccjmGPXPYI6yp4QV05SM4u8hJBRaLiKp7jWfaAQfGGBsW7rhfkjk6QREFAkFsQwjAnQEaTYcj89o+qNpVOd09Npi/V3d/361Uv6vJU168eOv2bqnrqeRQRmJmZTaSn1QGYmVl7cMIwM7NcnDDMzCwXJwwzM8vFCcPMzHJxwjAzs1ycMMzMLBcnDDMzy8UJw8zMcpnW6gDqafbs2bFgwYJWh2Fm1lbWrFnzcETMmahcRyWMBQsWMDg42OowzMzaiqR78pTzLSkzM8vFCcPMzHJxwjAzs1ycMMzMLBcnDDMzy6VpCUPSSNm0VdL5VcqekG7Plj+kWbGamdmOmtasNiL6S/OSdgU2AN+ssct1EXFQwwMzM5uC4ZFR1m/czLyZM5jV37fTZdpBq97DOAp4CLiqRcc3M5uyy2+6nxWr19Hb08PY+Dgrly9m2dK5ky7TLlr1DON44EtRe0DxAyQ9LOl2SWdI6qiXDM2svQ2PjLJi9Tq2jI2zafQJtoyNc9rqdQyPjE6qTDtpesKQNB94FXBxjWJXAs8HngosB44BPljl806UNChpcGhoqN7hmplVtH7jZnp7tv8J7e3pYf3GzZMq005acYXxVuDqiLirWoGI+FNE3BUR4xHxO+AskttYlcpeEBEDETEwZ86EXaGYmdXFvJkzGBsf327d2Pg482bOmFSZdtKqhFHr6qKSANSAWMzMdsqs/j5WLl/M9N4eduubxvTeHlYuX7zdQ+08ZdpJU58LSHoFMJfaraOQdARwY0RskLQfcMZE+5iZNduypXM5cOHsmi2g8pRpF81+kHw8cFlEbMquTJ9r3ALsHxH3AocBqyT1kzS/vQT4eJNjNSucdmue2W7x7oxZ/X0TnlueMu2gqQkjIk6qsv5eoD+zfCpwarPiMmsH7dY8s93itYm5axCzNtBuzTPbLV7LxwnDrA20W/PMdovX8nHCMGsD7dY8s93itXycMMzaQLs1z2y3eC0f1e6do70MDAyEx/S2TtZurY7aLd5uJWlNRAxMVM79M5m1kXZrntlu8VptThhmHazof+GX4tv1Sbvwl8e3FjbOiRS9nuvFCcOsQxX9PYhSfDEejG4Npvcmj1SLFudEil7P9eSH3mYdqOjvQWTjG92aPEfdMjZeuDgnUvR6rjcnDLMOVPT3ICrFV1KkOCdS9HquNycMsw5U9PcgKsVXUqQ4J1L0eq43JwyzDlT09yCy8fXtkoxcML23p3BxTqTo9Vxvfg/DrIMVvfWOW0kVg9/DMLPCvwdR9PiyaiWFVp9HsxKWE4aZ2QSK3HS2mbH5GYaZWQ1Fbjrb7NicMMzMaihy09lmx+aEYWZWQ5GbzjY7NicMM7Maitx0ttmxuVmtmVkORW46O9XY3KzWzKyOWt10tpZmxeZbUmZmlosThpmZ5eKEYWZmuThhmJlZLk4YZmaWixOGmZnl0rSEIWmkbNoq6fwa5T8g6UFJj0q6SFIx27OZdbnhkVHW3vdIIfpWKoJOro+mvYcREf2leUm7AhuAb1YqK+lw4F+AQ4E/A98GPpKuM7OCKHIvrq3Q6fXRqltSRwEPAVdV2X48cGFE3BwRG4GzgROaFJuZ5VDkXlxboRvqo1UJ43jgS1G9X5JFwNrM8lpgL0mzygtKOlHSoKTBoaGhBoRqZpUUuRfXVuiG+mh6wpA0H3gVcHGNYv3Ao5nl0vxu5QUj4oKIGIiIgTlz5tQvUDOrqci9uLZCN9RHK64w3gpcHRF31SgzAuyeWS7Nb2pYVGY2KUXuxbUVuqE+WtH54FuBT0xQ5mZgCXBpurwE2BARw40MzMwmZ9nSuRy4cHZhe3Fttk6vj6YmDEmvAOZSpXVUxpeAVZK+AjwAfAhY1djozGxnFLkX11bo5Ppo9i2p44HLImK7W0uS5qfvZswHiIgfAyuBXwL3pNOHmxyrmWU0+v2CTn5/oVM09QojIk6qsv5ekgfd2XXnAec1Iy4zq63R7xd0+vsLncJdg5hZTY1+v6Ab3l/oFE4YZlZTo98v6Ib3FzpF7ltSkt4CHAY8lbJEExHL6hyXmRVEo98v6Ib3FzpFrisMSZ8ELgEWAI8Aw2WTmXWoRr9f0A3vL3QKVe+dI1NI2gC8JyK+1fiQdt7AwEAMDg62OgyzjjQ8MtrQ9wsa/flWnaQ1ETEwUbm8t6R6gJumFpKZtbNOfr/A8smbMC4A/itwZuNCMbNu5Wa17SFvwtgDOFbSa4F1wFh2Y0S8r96BmVl3yDar3ULy8Pu01es4cOFsX9EUTN6EsT/bbkntV7Zt4ocgZmZVlJrVlpIFbGtW64RRLLkSRkS8utGBmFl3crPa9jGpF/ckTZf0fEmLJE1vVFBm1j3crLZ95LrCkNQLfBw4GXgSIGBU0vnA6RExVmt/M7NaOr1b8E6R9xnGucAxwDuBq9N1BwPnkFylnFr/0Mysm7jZbvHlTRjHAm+LiB9m1t0paQj4D5wwzMw6Xt5nGE8B7qyw/k6SJrdmZtbh8iaMtUCldy3ej98ANzPrCnlvSZ0G/DB9ce86kncvXg48HTiiQbGZmVmB5LrCiIgrgX1IxuLuB3ZP5/eNiKtr7WtmZp0h93gYEfFn4PQGxmJmZgVWNWFIeiFwU0SMp/NVRcSNdY/MzMwKpdYVxiDwNOChdD5IXtgrF8Au9Q/NzMyKpFbCeBYwlJk3M7MuVjVhRMQ92UXgvqgwPJ+k+Y0IzMzMiiXvexh3AXPKV0qalW4zM7MOlzdhiMrjXvQDW+oXjpmZFVXNZrWSPpfOBnCOpL9mNu8CvAS/6W1m1hUmusJ4QToJeF5m+QXAQuBG4ITJHFDS0ZL+IOkvku6UdHCFMidI2ippJDMdMpnjmJlZfdW8wiiNtCfpi8D7I+KxqRws7VrkXOAtwK+BvWsUvy4iDprK8ayzDY+MevyESXKd2VTkfdP7f5F0B7JdwpA0DxiLiA05P+cjwFkRcX26fH/O/cy2c/lN97Ni9Tp6e3oYGx9n5fLFLFs6t9VhFZrrzKYq70PvL1G5k8HDgS/n+QBJuwADwBxJd0haL+nzkqoN3HuApIcl3S7pDEm5uzGxzjY8MsqK1evYMjbOptEn2DI2zmmr1zE8Mtrq0ArLdWb1kDdhvBi4ssL6q0iSQB57Ab3AUSSj9S0FDgA+VKHslcDzgacCy0lG+/tgpQ+VdKKkQUmDQ0NDlYpYh1m/cTO9Pdt/dXt7eli/cXOLIio+15nVQ96EMQ2odMNzepX1lZS+medHxAMR8TBwHvCG8oIR8aeIuCsixiPid8BZJIlmBxFxQUQMRMTAnDk7vCpiHWjezBmMjY9vt25sfJx5M6tdrJrrzOohb8K4AXhXhfXvAX6T5wMiYiOwnsrvc0y4O5X7sbIuNKu/j5XLFzO9t4fd+qYxvbeHlcsX+yFuDa4zq4e8zwVOB34haQnw83TdoSS3lF4zieN9EXivpB8DY8D/AL5fXkjSEcCNEbFB0n7AGSTjb5gBsGzpXA5cONstfibBdWZTlSthRMT1kl5O8hzhzSR/7d8IvDsi1k7ieGcDs4HbSd4QvxT4WNof1S3A/hFxL3AYsEpSP7ABuAT4+CSOY11gVn+ff/QmyXVmU6EK/Qm2rYGBgRgcHGx1GGZmbUXSmoiYsAHTpJuqSnoa8KTsuvSqwMzMOliuhCHpKcDngH+kLFmkPICSmVmHy9tK6lPAEuBIkmcPx5I8z1hP0s2HmZl1uLy3pI4AjomIqyRtBdZExDckPQCcBHyrYRGamVkh5L3C2AMojcD3KDArnb8OeEW9gzIzs+LJmzDuBJ6dzv8BOFqSSJrY/mcjAjMzs2LJmzBWAYvT+U+Q3IZ6HPgkSXflZmbW4fK+uPeZzPwv0revB4A/pn09mZlZh6t6hZGOePfUdP4iSbuVtkXEvRFxmZOFmVn3qHVLajPQn84fT9IzrZmZdalat6SuBb4jaQ1J31Gfk1Sx8/yIeFsjgjMzs+KolTD+CTgVWEjSvfgswMNzmZl1qaoJIx2n+4MAku4ieXFvuFmBmZlZseRtJfWs8nWSeiNirP4hmZlZEeV6D0PS+yQtzyxfCGyWdJukfRsWnZmZFUbeF/feBwwBSHolSa+1xwI3AZ9uTGhmZlYkeTsfnAvcnc6/CfhmRFwq6XfAVY0IzMzMiiXvFcZjwJx0/rVsG9d7DL+fYWbWFfJeYfwU+L+SfkvSzPZH6fpFwF2NCMzMzIol7xXGe4BrgNnAURFR6qH2hcDXGhGYmZkVS95mtY8B762w/sN1j8hyGR4ZZf3GzcybOYNZ/X2tDsfMukDVhCFpz9KVhKQ9a31I5orDmuDym+5nxep19Pb0MDY+zsrli1m2dG6rwzKzDlfrCmNI0t4R8RDwMEn3IOWUrt+lEcHZjoZHRlmxeh1bxsbZwjgAp61ex4ELZ/tKw8waqlbCOJRto+kdSuWEYU22fuNment6/pYsAHp7eli/cbMThpk1VK2+pH6Vmb+iKdHYhObNnMHY+Ph268bGx5k3c0aLIjKzbpG3a5C/DaZUtn6WpK31D8uqmdXfx8rli5ne28NufdOY3tvDyuWLfXVhZg2X9z0MVVnfRzK2d26SjgY+DMwHHgROiIgd3haX9AFgBTADWA28KyLcvTqwbOlcDlw4262kzKypaiYMSaekswG8U9JIZvMuwMHArXkPJum1wLnAW4BfA3tXKXc48C8kz07+DHwb+Ei6ru7asYnqrP6+tom13bXj98OsESa6wii9eyHg7UD29tPjJP1LvXMSx/sIcFZEXJ8u31+l3PHAhRFxM4Cks4Gv0ICE4SaqVou/H2bb1HyGERHPSsfC+BWwpLScTvtGxOERcUOeA0naBRgA5ki6Q9J6SZ+XVOlp7SJgbWZ5LbCXpFn5TiufbBPVTaNPsGVsnNNWr2N4xHe+zN8Ps3K5HnpHxKsjYuMUj7UX0AscRXIraylwAPChCmX7gUczy6X53coLSjpR0qCkwaGhoUkFVGqimlVqomrm74fZ9vI+9EbSPiQ/9vOBJ2W3RcTbcnxE6V/Z+RHxQPqZ55EkjNPLyo4Au2eWS/Obyj80Ii4ALgAYGBiY1LsibqJqtfj7Yba9vM1q3wisIxkL423AvsAbgH8g6ZBwQukVynryvQB4M7Aks7wE2FDvMcXdRNVq8ffDbHuKmPj3W9Ia4FsRcY6kTSQ/4H8GvgxcFxHn5TqYdBZwBPBGkrE0vgtcERFnlJV7PbCKpJXUAyTNan8dETUfeg8MDMTg4GCeULbjVjBWi78f1ukkrYmIgYnK5b0ltS/wjXR+DHhyRGxJE8APgFwJAzib5IrkdmALcCnwMUnzgVuA/SPi3oj4saSVwC/Z9h5Gw3rGdRNVq6Ue3w8nHesEeRPGJraNrPcAySBKv0/3n5n3YBExBrw7nbLuJXnQnS17HvkTkVlhuWmudYq8AyjdAByUzv8A+LSkDwNfBK5rRGBmncBNc62T5L3COIVtVwBnkjRvXU5ya+mUKvuYdT33LmydJO+Ie3/KzP8VeFfDIjLrIG6aa50kb7PaOZLmZJZfIOmjko5pXGhm7c9Nc62T5L0ldSlJE9qLJM0GriRpVvteSU+PiE83KkCzdufeha1T5H3ovRgodRh4FHBHRCwC3gqc1IjAzDrJrP4+ljxjDycLa2t5E8YMku46AF5D8sIdwI3AM+odVCcZHhll7X2PuFVMC7juzeor7y2pPwJvlrQaeB3wyXT9XsAjjQisE7j9feu47s3qL+8VxkdIBj66G7g+06X54cBvGxBX23P7+9Zx3Zs1Rt7uzS8j6aV2AHh9ZtPP8HsYFblr7NZx3Zs1Ru7uzSNiA7ChbF2uwZO6kdvft47r3qwx8t6Sskly+/vWcd2bNUau7s3bxc52b95I7qW0dVz3ZvnUu3tz20md2HV6u/wQd2Ldm7WSE4ZNipurmnWv3M8wJO0l6VRJX0i7B0HSgZKe1bjwrEjcXNWsu+XtfPBFwG3AccB/B3ZPN70W+FhjQrOicXNVs+6W9wrjU8BnI+IAIPvn5E+AA+selRWSm6uadbe8CeNFwMUV1j9A0j2IdQE3VzXrbnkfem+m8tjd+wEP1S8cKzp31W3WvfJeYVwOfFhS6dchJC0g6V9qdQPiaplO6uG0UefirrrNulPeK4xTgR8CQ8CTgatJbkVdA3yoMaE1Xyc1Ge2kczGzYsg7pvdjwEGSDgVeSHJlcmNE/KyRwTVTtsnoFpIHu6etXseBC2e33V/SnXQuZlYcVROGpK3A3hHxkKSLgPdHxC+AXzQtuiYqNRkt/cDCtiaj7fYj20nnYmbFUesZxmagP50/Hpje+HBap5OajHbSuZhZcdS6JXUt8B1JawABn5NU8Q2tiHhbI4JrplKT0dPK7vu341/knXQuZlYctRLGP5E87F4IBDCL7V/a6zid1GS0k87FzIqhasJIB0z6IICku4BjImJ4KgeTdAXwMuCJdNX9EbFvhXJnAqezfYJaHBF/msrx8+ikHk476VzMrPXyDtH6rKkmi4yTI6I/nXZIFhnfyJTrb0ayMDOz6mq1kjoF+LeI2JLOVxUR59U9MjMzK5RazzDeS9J/1JZ0vpoAJpMwzpH0CZLeb0+PiCuqlHuTpP8k6a/q8xHxhUqFJJ0InAgwf/78SYRhZmaT0dQhWiW9FLgFeBw4Gvg8sDQi7iwrtz/wCLABeClJ9yOnRMTXan1+EYdoNTMrurxDtOYeQKnKQZ4p6dK85SPihojYFBGjEXExSdcib6hQ7paI+HNEbI2Ia4HPAkdNJVYzM5uaKSUMYA9g+RT2D5J3POpVzszMGmSqCSM3SXtIOlzSdEnTJB0HvJJkEKbysn8vaaYSLwHeR9JjrpmZtUje3mrroRf4KMkYGluBW4EjI+I2SQcDP4qIUlckRwMXAX3AeuDc9BaWmZm1SNMSRkQMAS+usu0qtvVbRUQc06y4zMwsn5oJQ9J3J9h/9zrGYmZmBTbRFcZEb3cPA3fVKRYzMyuwmgkjIv5bswIxM7Nia1orKTMza29OGGZmlosThpmZ5eKEYWZmuThhmJlZLk4YZmaWixOGmZnl4oRhZma5OGGYmVkuThhmZpaLE4aZmeXihGFmZrk4YZiZWS5OGGZmlosThpmZ5eKEYWZmuThh2N8Mj4yy9r5HGB4ZbXUoZlZAEw3Ral3i8pvuZ8XqdfT29DA2Ps7K5YtZtnRuq8MyswLxFYYxPDLKitXr2DI2zqbRJ9gyNs5pq9f5SsPMtuOEYazfuJnenu2/Cr09PazfuLlFEZlZETlhGPNmzmBsfHy7dWPj48ybOaNFEZlZETlhGLP6+1i5fDHTe3vYrW8a03t7WLl8MbP6+1odmpkViB96GwDLls7lwIWzWb9xM/NmznCyMLMdNPUKQ9IVkrZIGkmn26qUk6RzJQ2n00pJamas3WhWfx9LnrGHk4WZVdSKW1InR0R/Ou1bpcyJwJHAEmAx8HfASc0K0MzMdlTUZxjHA5+OiPURcT/waeCE1oZkZtbdWpEwzpH0sKRrJB1SpcwiYG1meW26zszMWqTZCWMF8GxgLnAB8D1Jz6lQrh94NLP8KNBf6TmGpBMlDUoaHBoaakTMZmZGkxNGRNwQEZsiYjQiLgauAd5QoegIsHtmeXdgJCKiwmdeEBEDETEwZ86cxgRuZmYtf4YRQKXWTzeTPPAuWZKuMzOzFmlawpC0h6TDJU2XNE3SccArgZ9UKP4l4BRJcyU9HfhnYFWzYjUzsx0188W9XuCjwH7AVuBW4MiIuE3SwcCPIqI/Lft/SJ51/C5d/o90XdsYHhn1S3Bm1lGaljAiYgh4cZVtV5E86C4tB3BaOrUddxVuZp2o1c8wOo67CjezTuWEUWfuKtzMOpUTRp25q3Az61ROGHXmrsLNrFO5e/MGcFfhZtaJnDAaZFZ/XyEThZv7mtnOcsLoIm7ua2ZT4WcYXcLNfc1sqpwwuoSb+5rZVDlhdAk39zWzqXLC6BJu7mtmU+WH3l3EzX3NbCqcMLpMUZv7mlnx+ZaUmZnl4oRhZma5OGGYmVkuThhmZpaLE4aZmeXihGFmZrkoGT67M0gaAu6p88fOBh6u82e2I9eD6wBcB9CZdfDMiJgzUaGOShiNIGkwIgZaHUeruR5cB+A6gO6uA9+SMjOzXJwwzMwsFyeMiV3Q6gAKwvXgOgDXAXRxHfgZhpmZ5eIrDDMzy8UJw8zMcunohCHpZEmDkkYlrSrbdpikWyX9VdIvJT0zs61P0kWSHpP0oKRT6rVvs6XxXCjpHkmbJP1W0hGZ7d1SD5dIeiCN53ZJb89s64o6KJH0XElbJF2SWXds+h35i6TvSNozs21PSd9Ot90j6diyz9vpfZtN0hXpuY+k022ZbV1RB1MSER07AW8GjgS+AKzKrJ8NPAr8F2A68Eng+sz2c4CrgJnA84AHgddPdd8W1cGuwJnAApI/EP4O2JQud1M9LAL60vn90nhe1E11kInrp2lcl2TqZhPwSqAf+Crw9Uz5rwHfSLcdlJ7zoqnu26JzvwJ4e5XvR1fUwZTqr9UBNOlL8lG2TxgnAtdmlncFNgP7pcv3A6/LbD+79AWYyr5FmYB1wPJurQdgX+AB4B+7rQ6Ao4FLSf6IKCWMjwNfzZR5DvA4sFt6To8D+2S2fxn4xFT3bdH5X0HlhNE1dTCVqaNvSdWwCFhbWoiIvwB3AoskzQSent2ezi+qw74tJ2kvYB/gZrqsHiT9m6S/AreSJIwf0kV1IGl34Czgn8s2lZ/HnaQ/cum0NSJuz5SvVQeT2bdVzpH0sKRrJB2Sruu2Otgp3Zow+kkuC7MeJfmLoD+zXL5tqvu2lKRe4CvAxRFxK11WDxHx7jSGg4HLgFG6qw7OBi6MiPvK1k90HtW2TXXfVlgBPBuYS/I+xfckPYfuqoOd1q0JYwTYvWzd7iT3IUcyy+Xbprpvy0jqIbkUfhw4OV3ddfUQEVsj4mpgHvAuuqQOJC0FXgN8psLmic6j2rap7tt0EXFDRGyKiNGIuBi4BngDXVQHU9GtCeNmYElpQdKuJPcdb46IjSS3K5Zkyi9J95nqvi0hScCFwF7A8ogYSzd1VT2UmUYaL91RB4eQNHS4V9KDwKnAckk3suN5PBvoA25Pp2mSnpv5rFp1MJl9iyAA0d11kF+rH6I0ciL5UZhO0lrly+n8NGAOyWXh8nTduWzfuuUTwK9IWrfsR/IPv9QyZqf3bWE9/DtwPdBftr4r6gF4KsnD3n5gF+Bw4C/A33dRHTwZeFpm+hTwrfQcFgGPkdyq2xW4hO1b+XydpKXPrsCB7NhCaKf2bUEd7JH+vy/9DhyXfg/27ZY6mHIdtjqABn9BziT5CyI7nZluew3Jw8/NJC0nFmT26wMuSr8EG4BTyj53p/dtQR08Mz3vLSSXx6XpuG6pB5IfxV8Bj6Tx/A54Rz3Oo13qoMq/jUsyy8cC95L8gF4O7JnZtifwnXTbvcCxZZ+10/u24HvwG5LbQY+Q/BH12m6qg6lO7kvKzMxy6dZnGGZmNklOGGZmlosThpmZ5eKEYWZmuThhmJlZLk4YZmaWixOGWReStEBSSBpodSzWPpwwrNAk7SXpM5L+mA5885CkayW9V1J/ptzd6Q9gpOXuSweteVOFz4zMtEnJIFtvbu6Ztdx9wN7ATQCSDknrY3Zrw7Iic8KwwpK0ALgReD1wBvBC4FCSbi0OA5aV7XIWyY/gPiRdgdwNfFvS+RU+/h1p2ReTdDf9TUkvr/c51CLpSc08XlYknTA+GBFPtCoGaz9OGFZkXwDGgYGI+HpE3BIRv4+IyyLiSJL+ebI2pT+C90bENRHxAeDdwMmSXl1W9pG07K3AO0m6TilPQMB2t2+OlXR1egVzq6TXlZXbX9IP0quWhyR9TdLTMttXSfq+pBWS1gPrq524pJdJ+kU6rOejkn4u6enpttdLukrSRkn/Keknkp43mXizt6TSxPzLdNNQun5VnmNZd3HCsEJKx0Q+HPjXSAYm2kHk69fmQmAjSQeBFUXSe+8TQO8En7US+BywFPh/wOWS5qbx7g1cCfweeAlJH1P9wHfTruVLXgUsJrlqOqzSQSQtIfkBv4Oks7qXkYySNy0tsivwv9PjHELSmd33KlyxVI23zH1sq59FJFde75/ksawbtLozK0+eKk3AS0k6TfyHsvXr2daB4r9n1t8NnFrls64HfphZDuCodL4P+FC67ogq+y9It5+eWddD0nX1R9Pls4Cfl+03M93vJenyKmCIdGzxGuf+FTK93uaoq12BrcBBk4i3VGYgXT4kXZ49mWN56q7JVxjWbg4m+Yv51yTdVOchkh/DrC9LGgH+CpxCkmx+NMHnXFeaiYhx4AZg/3TVi4BXShopTSR/uUMyRkbJ7yNidILjHAD8vOrJSM+R9FVJd0oq9YTbA8yfRLy5TOJY1gWmTVzErCXuIPmR3y+7MiLuAlAyNveEJO1C8hD812WbPgj8GHgsIh6acrTJj+gPSAYmKrchM1/x9loZTbD9e8D9wEnpf58AbgEacZuomceygvMVhhVSRAwDPyV5YN0/Ufka3k4ycM63ytY/GBF3TDJZvKw0k45i+BLgD+mqG0nu/9+Tfm52muxwnDeStAbbgaRZwPOAj0fEzyLiDyTjQ1f6469WvOUeT/+7y04ey7qAE4YV2btJvqNrJB2TtkLaR9IxJMNcbi0rv5ukp0l6hqRXSPoM8K/A5yPiV3WI512SjpK0L8mD4GeStOQiPc5TgG9IeqmkZ0t6jaQLJO02yeN8Ejgg3XeJpH0lvV3SfJIH+A8D75C0UNKrSEZUrNQ8tla85e4huaJ7o6Q5aZKezLGsG7T6IYonT7UmkuFEP0tyi2qU5GH3b4D/CeyWKXc320ZVHCV5OP4dYFmFz/zbQ++cMSxI9zkOuJZmipeQAAAAn0lEQVSkCe5tlD0kB55LciWzkWQEvtuA84EnpdtXAd/PecyDSFpdbSYZHe5nwN7ptkNJWmNtSf97eFovJ+SNl7KH3um6M0iGkR0HVuU5lqfumjzintkE0vcU7gJeHBGDrY1mYu0Wr7UP35IyM7NcnDDMzCwX35IyM7NcfIVhZma5OGGYmVkuThhmZpaLE4aZmeXihGFmZrk4YZiZWS7/H1WhRLmX8YxSAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22dc565c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[5.96242338]]\n"
     ]
    }
   ],
   "source": [
    "# Code example 代码示例\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn.linear_model\n",
    "\n",
    "# Load the data 载入数据\n",
    "oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',') # thousands= 千位分隔符（Thousands separator）\n",
    "gdp_per_capita = pd.read_csv(datapath + \"gdp_per_capita.csv\",thousands=',',delimiter='\\t',\n",
    "                             encoding='latin1', na_values=\"n/a\") # delimiter 分隔符 na_values 用n/a填充空值\n",
    "\n",
    "# Prepare the data 准备数据\n",
    "country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)\n",
    "X = np.c_[country_stats[\"GDP per capita\"]] # X是训练的数据 这里使用np.c_是将DataFrame转为ndarray,要保持其形状不变，所以不能使用np.array()来转。\n",
    "y = np.c_[country_stats[\"Life satisfaction\"]] # y是训练数据对应的标签\n",
    "\n",
    "# Visualize the data 可视化数据\n",
    "country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction') # kind=’scatter‘：散点图，x，y：轴\n",
    "plt.show()\n",
    "\n",
    "# Select a linear model 选择一个线性模型\n",
    "model = sklearn.linear_model.LinearRegression() # 选择sklearn的线性回归模型\n",
    "\n",
    "# Train the model 训练数据\n",
    "model.fit(X, y) # sklearn需要传入ndarray类型\n",
    "\n",
    "# Make a prediction for Cyprus 对cyprus（塞浦路斯）进行预测\n",
    "X_new = [[22587]]  # Cyprus' GDP per capita 塞浦路斯的人均GDP\n",
    "print(model.predict(X_new)) # outputs [[ 5.96242338]] 预测输出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Note: you can ignore the rest of this notebook, it just generates many of the figures in chapter 1. \n",
    "# 注：你可以忽略以下notebook，它们只是为了画出书中第一章的图表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load and prepare Life satisfaction data\n",
    "# 载入并准备生活满意度数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you want, you can get fresh data from the OECD's website.\n",
    "\n",
    "如果你想，你可以从OECD的网站下载最新的数据。\n",
    "\n",
    "Download the CSV from http://stats.oecd.org/index.aspx?DataSetCode=BLI and save it to `datasets/lifesat/`.\n",
    "\n",
    "从这个[网址](http://stats.oecd.org/index.aspx?DataSetCode=BLI)下载csv文件，保存到`datasets/lifesat/`文件夹"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Indicator</th>\n",
       "      <th>Air pollution</th>\n",
       "      <th>Assault rate</th>\n",
       "      <th>Consultation on rule-making</th>\n",
       "      <th>Dwellings without basic facilities</th>\n",
       "      <th>Educational attainment</th>\n",
       "      <th>Employees working very long hours</th>\n",
       "      <th>Employment rate</th>\n",
       "      <th>Homicide rate</th>\n",
       "      <th>Household net adjusted disposable income</th>\n",
       "      <th>Household net financial wealth</th>\n",
       "      <th>...</th>\n",
       "      <th>Long-term unemployment rate</th>\n",
       "      <th>Personal earnings</th>\n",
       "      <th>Quality of support network</th>\n",
       "      <th>Rooms per person</th>\n",
       "      <th>Self-reported health</th>\n",
       "      <th>Student skills</th>\n",
       "      <th>Time devoted to leisure and personal care</th>\n",
       "      <th>Voter turnout</th>\n",
       "      <th>Water quality</th>\n",
       "      <th>Years in education</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Australia</th>\n",
       "      <td>13.0</td>\n",
       "      <td>2.1</td>\n",
       "      <td>10.5</td>\n",
       "      <td>1.1</td>\n",
       "      <td>76.0</td>\n",
       "      <td>14.02</td>\n",
       "      <td>72.0</td>\n",
       "      <td>0.8</td>\n",
       "      <td>31588.0</td>\n",
       "      <td>47657.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.08</td>\n",
       "      <td>50449.0</td>\n",
       "      <td>92.0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>85.0</td>\n",
       "      <td>512.0</td>\n",
       "      <td>14.41</td>\n",
       "      <td>93.0</td>\n",
       "      <td>91.0</td>\n",
       "      <td>19.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Austria</th>\n",
       "      <td>27.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>7.1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>83.0</td>\n",
       "      <td>7.61</td>\n",
       "      <td>72.0</td>\n",
       "      <td>0.4</td>\n",
       "      <td>31173.0</td>\n",
       "      <td>49887.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.19</td>\n",
       "      <td>45199.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>1.6</td>\n",
       "      <td>69.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>14.46</td>\n",
       "      <td>75.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>17.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "Indicator  Air pollution  Assault rate  Consultation on rule-making  \\\n",
       "Country                                                               \n",
       "Australia           13.0           2.1                         10.5   \n",
       "Austria             27.0           3.4                          7.1   \n",
       "\n",
       "Indicator  Dwellings without basic facilities  Educational attainment  \\\n",
       "Country                                                                 \n",
       "Australia                                 1.1                    76.0   \n",
       "Austria                                   1.0                    83.0   \n",
       "\n",
       "Indicator  Employees working very long hours  Employment rate  Homicide rate  \\\n",
       "Country                                                                        \n",
       "Australia                              14.02             72.0            0.8   \n",
       "Austria                                 7.61             72.0            0.4   \n",
       "\n",
       "Indicator  Household net adjusted disposable income  \\\n",
       "Country                                               \n",
       "Australia                                   31588.0   \n",
       "Austria                                     31173.0   \n",
       "\n",
       "Indicator  Household net financial wealth         ...          \\\n",
       "Country                                           ...           \n",
       "Australia                         47657.0         ...           \n",
       "Austria                           49887.0         ...           \n",
       "\n",
       "Indicator  Long-term unemployment rate  Personal earnings  \\\n",
       "Country                                                     \n",
       "Australia                         1.08            50449.0   \n",
       "Austria                           1.19            45199.0   \n",
       "\n",
       "Indicator  Quality of support network  Rooms per person  Self-reported health  \\\n",
       "Country                                                                         \n",
       "Australia                        92.0               2.3                  85.0   \n",
       "Austria                          89.0               1.6                  69.0   \n",
       "\n",
       "Indicator  Student skills  Time devoted to leisure and personal care  \\\n",
       "Country                                                                \n",
       "Australia           512.0                                      14.41   \n",
       "Austria             500.0                                      14.46   \n",
       "\n",
       "Indicator  Voter turnout  Water quality  Years in education  \n",
       "Country                                                      \n",
       "Australia           93.0           91.0                19.4  \n",
       "Austria             75.0           94.0                17.0  \n",
       "\n",
       "[2 rows x 24 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',') \n",
    "oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"] # 这两句解释参见上文\n",
    "oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
    "oecd_bli.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Country\n",
       "Australia    7.3\n",
       "Austria      6.9\n",
       "Belgium      6.9\n",
       "Brazil       7.0\n",
       "Canada       7.3\n",
       "Name: Life satisfaction, dtype: float64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "oecd_bli[\"Life satisfaction\"].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load and prepare GDP per capita data\n",
    "# 载入并准备人均GDP数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Just like above, you can update the GDP per capita data if you want. Just download data from http://goo.gl/j1MSKe (=> imf.org) and save it to `datasets/lifesat/`.\n",
    "\n",
    "像上面一样，你也可以更新人均GDP数据。在[这里](http://goo.gl/j1MSKe)下载，保存到`datasets/lifesat/`。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Subject Descriptor</th>\n",
       "      <th>Units</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Country/Series-specific Notes</th>\n",
       "      <th>GDP per capita</th>\n",
       "      <th>Estimates Start After</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Afghanistan</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>599.994</td>\n",
       "      <td>2013.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Albania</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>3995.383</td>\n",
       "      <td>2010.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                            Subject Descriptor         Units  \\\n",
       "Country                                                                        \n",
       "Afghanistan  Gross domestic product per capita, current prices  U.S. dollars   \n",
       "Albania      Gross domestic product per capita, current prices  U.S. dollars   \n",
       "\n",
       "             Scale                      Country/Series-specific Notes  \\\n",
       "Country                                                                 \n",
       "Afghanistan  Units  See notes for:  Gross domestic product, curren...   \n",
       "Albania      Units  See notes for:  Gross domestic product, curren...   \n",
       "\n",
       "             GDP per capita  Estimates Start After  \n",
       "Country                                             \n",
       "Afghanistan         599.994                 2013.0  \n",
       "Albania            3995.383                 2010.0  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gdp_per_capita = pd.read_csv(datapath+\"gdp_per_capita.csv\", thousands=',', delimiter='\\t',\n",
    "                             encoding='latin1', na_values=\"n/a\") # 解释见上文\n",
    "gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
    "gdp_per_capita.set_index(\"Country\", inplace=True)\n",
    "gdp_per_capita.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Air pollution</th>\n",
       "      <th>Assault rate</th>\n",
       "      <th>Consultation on rule-making</th>\n",
       "      <th>Dwellings without basic facilities</th>\n",
       "      <th>Educational attainment</th>\n",
       "      <th>Employees working very long hours</th>\n",
       "      <th>Employment rate</th>\n",
       "      <th>Homicide rate</th>\n",
       "      <th>Household net adjusted disposable income</th>\n",
       "      <th>Household net financial wealth</th>\n",
       "      <th>...</th>\n",
       "      <th>Time devoted to leisure and personal care</th>\n",
       "      <th>Voter turnout</th>\n",
       "      <th>Water quality</th>\n",
       "      <th>Years in education</th>\n",
       "      <th>Subject Descriptor</th>\n",
       "      <th>Units</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Country/Series-specific Notes</th>\n",
       "      <th>GDP per capita</th>\n",
       "      <th>Estimates Start After</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Brazil</th>\n",
       "      <td>18.0</td>\n",
       "      <td>7.9</td>\n",
       "      <td>4.0</td>\n",
       "      <td>6.7</td>\n",
       "      <td>45.0</td>\n",
       "      <td>10.41</td>\n",
       "      <td>67.0</td>\n",
       "      <td>25.5</td>\n",
       "      <td>11664.0</td>\n",
       "      <td>6844.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.97</td>\n",
       "      <td>79.0</td>\n",
       "      <td>72.0</td>\n",
       "      <td>16.3</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>8669.998</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mexico</th>\n",
       "      <td>30.0</td>\n",
       "      <td>12.8</td>\n",
       "      <td>9.0</td>\n",
       "      <td>4.2</td>\n",
       "      <td>37.0</td>\n",
       "      <td>28.83</td>\n",
       "      <td>61.0</td>\n",
       "      <td>23.4</td>\n",
       "      <td>13085.0</td>\n",
       "      <td>9056.0</td>\n",
       "      <td>...</td>\n",
       "      <td>13.89</td>\n",
       "      <td>63.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>14.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>9009.280</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Russia</th>\n",
       "      <td>15.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>2.5</td>\n",
       "      <td>15.1</td>\n",
       "      <td>94.0</td>\n",
       "      <td>0.16</td>\n",
       "      <td>69.0</td>\n",
       "      <td>12.8</td>\n",
       "      <td>19292.0</td>\n",
       "      <td>3412.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.97</td>\n",
       "      <td>65.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>9054.914</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Turkey</th>\n",
       "      <td>35.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>5.5</td>\n",
       "      <td>12.7</td>\n",
       "      <td>34.0</td>\n",
       "      <td>40.86</td>\n",
       "      <td>50.0</td>\n",
       "      <td>1.2</td>\n",
       "      <td>14095.0</td>\n",
       "      <td>3251.0</td>\n",
       "      <td>...</td>\n",
       "      <td>13.42</td>\n",
       "      <td>88.0</td>\n",
       "      <td>62.0</td>\n",
       "      <td>16.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>9437.372</td>\n",
       "      <td>2013.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hungary</th>\n",
       "      <td>15.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>7.9</td>\n",
       "      <td>4.8</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.19</td>\n",
       "      <td>58.0</td>\n",
       "      <td>1.3</td>\n",
       "      <td>15442.0</td>\n",
       "      <td>13277.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.04</td>\n",
       "      <td>62.0</td>\n",
       "      <td>77.0</td>\n",
       "      <td>17.6</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>12239.894</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Poland</th>\n",
       "      <td>33.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>10.8</td>\n",
       "      <td>3.2</td>\n",
       "      <td>90.0</td>\n",
       "      <td>7.41</td>\n",
       "      <td>60.0</td>\n",
       "      <td>0.9</td>\n",
       "      <td>17852.0</td>\n",
       "      <td>10919.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.20</td>\n",
       "      <td>55.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>18.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>12495.334</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chile</th>\n",
       "      <td>46.0</td>\n",
       "      <td>6.9</td>\n",
       "      <td>2.0</td>\n",
       "      <td>9.4</td>\n",
       "      <td>57.0</td>\n",
       "      <td>15.42</td>\n",
       "      <td>62.0</td>\n",
       "      <td>4.4</td>\n",
       "      <td>14533.0</td>\n",
       "      <td>17733.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.41</td>\n",
       "      <td>49.0</td>\n",
       "      <td>73.0</td>\n",
       "      <td>16.5</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>13340.905</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Slovak Republic</th>\n",
       "      <td>13.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>6.6</td>\n",
       "      <td>0.6</td>\n",
       "      <td>92.0</td>\n",
       "      <td>7.02</td>\n",
       "      <td>60.0</td>\n",
       "      <td>1.2</td>\n",
       "      <td>17503.0</td>\n",
       "      <td>8663.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.99</td>\n",
       "      <td>59.0</td>\n",
       "      <td>81.0</td>\n",
       "      <td>16.3</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>15991.736</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Czech Republic</th>\n",
       "      <td>16.0</td>\n",
       "      <td>2.8</td>\n",
       "      <td>6.8</td>\n",
       "      <td>0.9</td>\n",
       "      <td>92.0</td>\n",
       "      <td>6.98</td>\n",
       "      <td>68.0</td>\n",
       "      <td>0.8</td>\n",
       "      <td>18404.0</td>\n",
       "      <td>17299.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.98</td>\n",
       "      <td>59.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>18.1</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>17256.918</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Estonia</th>\n",
       "      <td>9.0</td>\n",
       "      <td>5.5</td>\n",
       "      <td>3.3</td>\n",
       "      <td>8.1</td>\n",
       "      <td>90.0</td>\n",
       "      <td>3.30</td>\n",
       "      <td>68.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>15167.0</td>\n",
       "      <td>7680.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.90</td>\n",
       "      <td>64.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>17.5</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>17288.083</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Greece</th>\n",
       "      <td>27.0</td>\n",
       "      <td>3.7</td>\n",
       "      <td>6.5</td>\n",
       "      <td>0.7</td>\n",
       "      <td>68.0</td>\n",
       "      <td>6.16</td>\n",
       "      <td>49.0</td>\n",
       "      <td>1.6</td>\n",
       "      <td>18575.0</td>\n",
       "      <td>14579.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.91</td>\n",
       "      <td>64.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>18.6</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>18064.288</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Portugal</th>\n",
       "      <td>18.0</td>\n",
       "      <td>5.7</td>\n",
       "      <td>6.5</td>\n",
       "      <td>0.9</td>\n",
       "      <td>38.0</td>\n",
       "      <td>9.62</td>\n",
       "      <td>61.0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>20086.0</td>\n",
       "      <td>31245.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.95</td>\n",
       "      <td>58.0</td>\n",
       "      <td>86.0</td>\n",
       "      <td>17.6</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>19121.592</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Slovenia</th>\n",
       "      <td>26.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>10.3</td>\n",
       "      <td>0.5</td>\n",
       "      <td>85.0</td>\n",
       "      <td>5.63</td>\n",
       "      <td>63.0</td>\n",
       "      <td>0.4</td>\n",
       "      <td>19326.0</td>\n",
       "      <td>18465.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.62</td>\n",
       "      <td>52.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>18.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>20732.482</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Spain</th>\n",
       "      <td>24.0</td>\n",
       "      <td>4.2</td>\n",
       "      <td>7.3</td>\n",
       "      <td>0.1</td>\n",
       "      <td>55.0</td>\n",
       "      <td>5.89</td>\n",
       "      <td>56.0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>22477.0</td>\n",
       "      <td>24774.0</td>\n",
       "      <td>...</td>\n",
       "      <td>16.06</td>\n",
       "      <td>69.0</td>\n",
       "      <td>71.0</td>\n",
       "      <td>17.6</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>25864.721</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Korea</th>\n",
       "      <td>30.0</td>\n",
       "      <td>2.1</td>\n",
       "      <td>10.4</td>\n",
       "      <td>4.2</td>\n",
       "      <td>82.0</td>\n",
       "      <td>18.72</td>\n",
       "      <td>64.0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>19510.0</td>\n",
       "      <td>29091.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.63</td>\n",
       "      <td>76.0</td>\n",
       "      <td>78.0</td>\n",
       "      <td>17.5</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>27195.197</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Italy</th>\n",
       "      <td>21.0</td>\n",
       "      <td>4.7</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>57.0</td>\n",
       "      <td>3.66</td>\n",
       "      <td>56.0</td>\n",
       "      <td>0.7</td>\n",
       "      <td>25166.0</td>\n",
       "      <td>54987.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.98</td>\n",
       "      <td>75.0</td>\n",
       "      <td>71.0</td>\n",
       "      <td>16.8</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>29866.581</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Japan</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>7.3</td>\n",
       "      <td>6.4</td>\n",
       "      <td>94.0</td>\n",
       "      <td>22.26</td>\n",
       "      <td>72.0</td>\n",
       "      <td>0.3</td>\n",
       "      <td>26111.0</td>\n",
       "      <td>86764.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.93</td>\n",
       "      <td>53.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>16.3</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>32485.545</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Israel</th>\n",
       "      <td>21.0</td>\n",
       "      <td>6.4</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.7</td>\n",
       "      <td>85.0</td>\n",
       "      <td>16.03</td>\n",
       "      <td>67.0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>22104.0</td>\n",
       "      <td>52933.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.48</td>\n",
       "      <td>68.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>15.8</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>35343.336</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>New Zealand</th>\n",
       "      <td>11.0</td>\n",
       "      <td>2.2</td>\n",
       "      <td>10.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>74.0</td>\n",
       "      <td>13.87</td>\n",
       "      <td>73.0</td>\n",
       "      <td>1.2</td>\n",
       "      <td>23815.0</td>\n",
       "      <td>28290.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.87</td>\n",
       "      <td>77.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>18.1</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>37044.891</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>France</th>\n",
       "      <td>12.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>73.0</td>\n",
       "      <td>8.15</td>\n",
       "      <td>64.0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>28799.0</td>\n",
       "      <td>48741.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.33</td>\n",
       "      <td>80.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>16.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>37675.006</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Belgium</th>\n",
       "      <td>21.0</td>\n",
       "      <td>6.6</td>\n",
       "      <td>4.5</td>\n",
       "      <td>2.0</td>\n",
       "      <td>72.0</td>\n",
       "      <td>4.57</td>\n",
       "      <td>62.0</td>\n",
       "      <td>1.1</td>\n",
       "      <td>28307.0</td>\n",
       "      <td>83876.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.71</td>\n",
       "      <td>89.0</td>\n",
       "      <td>87.0</td>\n",
       "      <td>18.9</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>40106.632</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Germany</th>\n",
       "      <td>16.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>4.5</td>\n",
       "      <td>0.1</td>\n",
       "      <td>86.0</td>\n",
       "      <td>5.25</td>\n",
       "      <td>73.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>31252.0</td>\n",
       "      <td>50394.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.31</td>\n",
       "      <td>72.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>18.2</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>40996.511</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Finland</th>\n",
       "      <td>15.0</td>\n",
       "      <td>2.4</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.58</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>27927.0</td>\n",
       "      <td>18761.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.89</td>\n",
       "      <td>69.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>19.7</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>41973.988</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>15.0</td>\n",
       "      <td>1.3</td>\n",
       "      <td>10.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.94</td>\n",
       "      <td>72.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>29365.0</td>\n",
       "      <td>67913.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.25</td>\n",
       "      <td>61.0</td>\n",
       "      <td>91.0</td>\n",
       "      <td>17.2</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>43331.961</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Netherlands</th>\n",
       "      <td>30.0</td>\n",
       "      <td>4.9</td>\n",
       "      <td>6.1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>73.0</td>\n",
       "      <td>0.45</td>\n",
       "      <td>74.0</td>\n",
       "      <td>0.9</td>\n",
       "      <td>27888.0</td>\n",
       "      <td>77961.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.44</td>\n",
       "      <td>75.0</td>\n",
       "      <td>92.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>43603.115</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Austria</th>\n",
       "      <td>27.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>7.1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>83.0</td>\n",
       "      <td>7.61</td>\n",
       "      <td>72.0</td>\n",
       "      <td>0.4</td>\n",
       "      <td>31173.0</td>\n",
       "      <td>49887.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.46</td>\n",
       "      <td>75.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>43724.031</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>United Kingdom</th>\n",
       "      <td>13.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>11.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>78.0</td>\n",
       "      <td>12.70</td>\n",
       "      <td>71.0</td>\n",
       "      <td>0.3</td>\n",
       "      <td>27029.0</td>\n",
       "      <td>60778.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.83</td>\n",
       "      <td>66.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>16.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>43770.688</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sweden</th>\n",
       "      <td>10.0</td>\n",
       "      <td>5.1</td>\n",
       "      <td>10.9</td>\n",
       "      <td>0.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>1.13</td>\n",
       "      <td>74.0</td>\n",
       "      <td>0.7</td>\n",
       "      <td>29185.0</td>\n",
       "      <td>60328.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.11</td>\n",
       "      <td>86.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>19.3</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>49866.266</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Iceland</th>\n",
       "      <td>18.0</td>\n",
       "      <td>2.7</td>\n",
       "      <td>5.1</td>\n",
       "      <td>0.4</td>\n",
       "      <td>71.0</td>\n",
       "      <td>12.25</td>\n",
       "      <td>82.0</td>\n",
       "      <td>0.3</td>\n",
       "      <td>23965.0</td>\n",
       "      <td>43045.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.61</td>\n",
       "      <td>81.0</td>\n",
       "      <td>97.0</td>\n",
       "      <td>19.8</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>50854.583</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Australia</th>\n",
       "      <td>13.0</td>\n",
       "      <td>2.1</td>\n",
       "      <td>10.5</td>\n",
       "      <td>1.1</td>\n",
       "      <td>76.0</td>\n",
       "      <td>14.02</td>\n",
       "      <td>72.0</td>\n",
       "      <td>0.8</td>\n",
       "      <td>31588.0</td>\n",
       "      <td>47657.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.41</td>\n",
       "      <td>93.0</td>\n",
       "      <td>91.0</td>\n",
       "      <td>19.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>50961.865</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Ireland</th>\n",
       "      <td>13.0</td>\n",
       "      <td>2.6</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.2</td>\n",
       "      <td>75.0</td>\n",
       "      <td>4.20</td>\n",
       "      <td>60.0</td>\n",
       "      <td>0.8</td>\n",
       "      <td>23917.0</td>\n",
       "      <td>31580.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.19</td>\n",
       "      <td>70.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>17.6</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>51350.744</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Denmark</th>\n",
       "      <td>15.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>7.0</td>\n",
       "      <td>0.9</td>\n",
       "      <td>78.0</td>\n",
       "      <td>2.03</td>\n",
       "      <td>73.0</td>\n",
       "      <td>0.3</td>\n",
       "      <td>26491.0</td>\n",
       "      <td>44488.0</td>\n",
       "      <td>...</td>\n",
       "      <td>16.06</td>\n",
       "      <td>88.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>19.4</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>52114.165</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>United States</th>\n",
       "      <td>18.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>8.3</td>\n",
       "      <td>0.1</td>\n",
       "      <td>89.0</td>\n",
       "      <td>11.30</td>\n",
       "      <td>67.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>41355.0</td>\n",
       "      <td>145769.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.27</td>\n",
       "      <td>68.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>17.2</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>55805.204</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Norway</th>\n",
       "      <td>16.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>8.1</td>\n",
       "      <td>0.3</td>\n",
       "      <td>82.0</td>\n",
       "      <td>2.82</td>\n",
       "      <td>75.0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>33492.0</td>\n",
       "      <td>8797.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.56</td>\n",
       "      <td>78.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>17.9</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>74822.106</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Switzerland</th>\n",
       "      <td>20.0</td>\n",
       "      <td>4.2</td>\n",
       "      <td>8.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>86.0</td>\n",
       "      <td>6.72</td>\n",
       "      <td>80.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>33491.0</td>\n",
       "      <td>108823.0</td>\n",
       "      <td>...</td>\n",
       "      <td>14.98</td>\n",
       "      <td>49.0</td>\n",
       "      <td>96.0</td>\n",
       "      <td>17.3</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>80675.308</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Luxembourg</th>\n",
       "      <td>12.0</td>\n",
       "      <td>4.3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.1</td>\n",
       "      <td>78.0</td>\n",
       "      <td>3.47</td>\n",
       "      <td>66.0</td>\n",
       "      <td>0.4</td>\n",
       "      <td>38951.0</td>\n",
       "      <td>61765.0</td>\n",
       "      <td>...</td>\n",
       "      <td>15.12</td>\n",
       "      <td>91.0</td>\n",
       "      <td>86.0</td>\n",
       "      <td>15.1</td>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>101994.093</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>36 rows × 30 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                 Air pollution  Assault rate  Consultation on rule-making  \\\n",
       "Country                                                                     \n",
       "Brazil                    18.0           7.9                          4.0   \n",
       "Mexico                    30.0          12.8                          9.0   \n",
       "Russia                    15.0           3.8                          2.5   \n",
       "Turkey                    35.0           5.0                          5.5   \n",
       "Hungary                   15.0           3.6                          7.9   \n",
       "Poland                    33.0           1.4                         10.8   \n",
       "Chile                     46.0           6.9                          2.0   \n",
       "Slovak Republic           13.0           3.0                          6.6   \n",
       "Czech Republic            16.0           2.8                          6.8   \n",
       "Estonia                    9.0           5.5                          3.3   \n",
       "Greece                    27.0           3.7                          6.5   \n",
       "Portugal                  18.0           5.7                          6.5   \n",
       "Slovenia                  26.0           3.9                         10.3   \n",
       "Spain                     24.0           4.2                          7.3   \n",
       "Korea                     30.0           2.1                         10.4   \n",
       "Italy                     21.0           4.7                          5.0   \n",
       "Japan                     24.0           1.4                          7.3   \n",
       "Israel                    21.0           6.4                          2.5   \n",
       "New Zealand               11.0           2.2                         10.3   \n",
       "France                    12.0           5.0                          3.5   \n",
       "Belgium                   21.0           6.6                          4.5   \n",
       "Germany                   16.0           3.6                          4.5   \n",
       "Finland                   15.0           2.4                          9.0   \n",
       "Canada                    15.0           1.3                         10.5   \n",
       "Netherlands               30.0           4.9                          6.1   \n",
       "Austria                   27.0           3.4                          7.1   \n",
       "United Kingdom            13.0           1.9                         11.5   \n",
       "Sweden                    10.0           5.1                         10.9   \n",
       "Iceland                   18.0           2.7                          5.1   \n",
       "Australia                 13.0           2.1                         10.5   \n",
       "Ireland                   13.0           2.6                          9.0   \n",
       "Denmark                   15.0           3.9                          7.0   \n",
       "United States             18.0           1.5                          8.3   \n",
       "Norway                    16.0           3.3                          8.1   \n",
       "Switzerland               20.0           4.2                          8.4   \n",
       "Luxembourg                12.0           4.3                          6.0   \n",
       "\n",
       "                 Dwellings without basic facilities  Educational attainment  \\\n",
       "Country                                                                       \n",
       "Brazil                                          6.7                    45.0   \n",
       "Mexico                                          4.2                    37.0   \n",
       "Russia                                         15.1                    94.0   \n",
       "Turkey                                         12.7                    34.0   \n",
       "Hungary                                         4.8                    82.0   \n",
       "Poland                                          3.2                    90.0   \n",
       "Chile                                           9.4                    57.0   \n",
       "Slovak Republic                                 0.6                    92.0   \n",
       "Czech Republic                                  0.9                    92.0   \n",
       "Estonia                                         8.1                    90.0   \n",
       "Greece                                          0.7                    68.0   \n",
       "Portugal                                        0.9                    38.0   \n",
       "Slovenia                                        0.5                    85.0   \n",
       "Spain                                           0.1                    55.0   \n",
       "Korea                                           4.2                    82.0   \n",
       "Italy                                           1.1                    57.0   \n",
       "Japan                                           6.4                    94.0   \n",
       "Israel                                          3.7                    85.0   \n",
       "New Zealand                                     0.2                    74.0   \n",
       "France                                          0.5                    73.0   \n",
       "Belgium                                         2.0                    72.0   \n",
       "Germany                                         0.1                    86.0   \n",
       "Finland                                         0.6                    85.0   \n",
       "Canada                                          0.2                    89.0   \n",
       "Netherlands                                     0.0                    73.0   \n",
       "Austria                                         1.0                    83.0   \n",
       "United Kingdom                                  0.2                    78.0   \n",
       "Sweden                                          0.0                    88.0   \n",
       "Iceland                                         0.4                    71.0   \n",
       "Australia                                       1.1                    76.0   \n",
       "Ireland                                         0.2                    75.0   \n",
       "Denmark                                         0.9                    78.0   \n",
       "United States                                   0.1                    89.0   \n",
       "Norway                                          0.3                    82.0   \n",
       "Switzerland                                     0.0                    86.0   \n",
       "Luxembourg                                      0.1                    78.0   \n",
       "\n",
       "                 Employees working very long hours  Employment rate  \\\n",
       "Country                                                               \n",
       "Brazil                                       10.41             67.0   \n",
       "Mexico                                       28.83             61.0   \n",
       "Russia                                        0.16             69.0   \n",
       "Turkey                                       40.86             50.0   \n",
       "Hungary                                       3.19             58.0   \n",
       "Poland                                        7.41             60.0   \n",
       "Chile                                        15.42             62.0   \n",
       "Slovak Republic                               7.02             60.0   \n",
       "Czech Republic                                6.98             68.0   \n",
       "Estonia                                       3.30             68.0   \n",
       "Greece                                        6.16             49.0   \n",
       "Portugal                                      9.62             61.0   \n",
       "Slovenia                                      5.63             63.0   \n",
       "Spain                                         5.89             56.0   \n",
       "Korea                                        18.72             64.0   \n",
       "Italy                                         3.66             56.0   \n",
       "Japan                                        22.26             72.0   \n",
       "Israel                                       16.03             67.0   \n",
       "New Zealand                                  13.87             73.0   \n",
       "France                                        8.15             64.0   \n",
       "Belgium                                       4.57             62.0   \n",
       "Germany                                       5.25             73.0   \n",
       "Finland                                       3.58             69.0   \n",
       "Canada                                        3.94             72.0   \n",
       "Netherlands                                   0.45             74.0   \n",
       "Austria                                       7.61             72.0   \n",
       "United Kingdom                               12.70             71.0   \n",
       "Sweden                                        1.13             74.0   \n",
       "Iceland                                      12.25             82.0   \n",
       "Australia                                    14.02             72.0   \n",
       "Ireland                                       4.20             60.0   \n",
       "Denmark                                       2.03             73.0   \n",
       "United States                                11.30             67.0   \n",
       "Norway                                        2.82             75.0   \n",
       "Switzerland                                   6.72             80.0   \n",
       "Luxembourg                                    3.47             66.0   \n",
       "\n",
       "                 Homicide rate  Household net adjusted disposable income  \\\n",
       "Country                                                                    \n",
       "Brazil                    25.5                                   11664.0   \n",
       "Mexico                    23.4                                   13085.0   \n",
       "Russia                    12.8                                   19292.0   \n",
       "Turkey                     1.2                                   14095.0   \n",
       "Hungary                    1.3                                   15442.0   \n",
       "Poland                     0.9                                   17852.0   \n",
       "Chile                      4.4                                   14533.0   \n",
       "Slovak Republic            1.2                                   17503.0   \n",
       "Czech Republic             0.8                                   18404.0   \n",
       "Estonia                    4.8                                   15167.0   \n",
       "Greece                     1.6                                   18575.0   \n",
       "Portugal                   1.1                                   20086.0   \n",
       "Slovenia                   0.4                                   19326.0   \n",
       "Spain                      0.6                                   22477.0   \n",
       "Korea                      1.1                                   19510.0   \n",
       "Italy                      0.7                                   25166.0   \n",
       "Japan                      0.3                                   26111.0   \n",
       "Israel                     2.3                                   22104.0   \n",
       "New Zealand                1.2                                   23815.0   \n",
       "France                     0.6                                   28799.0   \n",
       "Belgium                    1.1                                   28307.0   \n",
       "Germany                    0.5                                   31252.0   \n",
       "Finland                    1.4                                   27927.0   \n",
       "Canada                     1.5                                   29365.0   \n",
       "Netherlands                0.9                                   27888.0   \n",
       "Austria                    0.4                                   31173.0   \n",
       "United Kingdom             0.3                                   27029.0   \n",
       "Sweden                     0.7                                   29185.0   \n",
       "Iceland                    0.3                                   23965.0   \n",
       "Australia                  0.8                                   31588.0   \n",
       "Ireland                    0.8                                   23917.0   \n",
       "Denmark                    0.3                                   26491.0   \n",
       "United States              5.2                                   41355.0   \n",
       "Norway                     0.6                                   33492.0   \n",
       "Switzerland                0.5                                   33491.0   \n",
       "Luxembourg                 0.4                                   38951.0   \n",
       "\n",
       "                 Household net financial wealth          ...            \\\n",
       "Country                                                  ...             \n",
       "Brazil                                   6844.0          ...             \n",
       "Mexico                                   9056.0          ...             \n",
       "Russia                                   3412.0          ...             \n",
       "Turkey                                   3251.0          ...             \n",
       "Hungary                                 13277.0          ...             \n",
       "Poland                                  10919.0          ...             \n",
       "Chile                                   17733.0          ...             \n",
       "Slovak Republic                          8663.0          ...             \n",
       "Czech Republic                          17299.0          ...             \n",
       "Estonia                                  7680.0          ...             \n",
       "Greece                                  14579.0          ...             \n",
       "Portugal                                31245.0          ...             \n",
       "Slovenia                                18465.0          ...             \n",
       "Spain                                   24774.0          ...             \n",
       "Korea                                   29091.0          ...             \n",
       "Italy                                   54987.0          ...             \n",
       "Japan                                   86764.0          ...             \n",
       "Israel                                  52933.0          ...             \n",
       "New Zealand                             28290.0          ...             \n",
       "France                                  48741.0          ...             \n",
       "Belgium                                 83876.0          ...             \n",
       "Germany                                 50394.0          ...             \n",
       "Finland                                 18761.0          ...             \n",
       "Canada                                  67913.0          ...             \n",
       "Netherlands                             77961.0          ...             \n",
       "Austria                                 49887.0          ...             \n",
       "United Kingdom                          60778.0          ...             \n",
       "Sweden                                  60328.0          ...             \n",
       "Iceland                                 43045.0          ...             \n",
       "Australia                               47657.0          ...             \n",
       "Ireland                                 31580.0          ...             \n",
       "Denmark                                 44488.0          ...             \n",
       "United States                          145769.0          ...             \n",
       "Norway                                   8797.0          ...             \n",
       "Switzerland                            108823.0          ...             \n",
       "Luxembourg                              61765.0          ...             \n",
       "\n",
       "                 Time devoted to leisure and personal care  Voter turnout  \\\n",
       "Country                                                                     \n",
       "Brazil                                               14.97           79.0   \n",
       "Mexico                                               13.89           63.0   \n",
       "Russia                                               14.97           65.0   \n",
       "Turkey                                               13.42           88.0   \n",
       "Hungary                                              15.04           62.0   \n",
       "Poland                                               14.20           55.0   \n",
       "Chile                                                14.41           49.0   \n",
       "Slovak Republic                                      14.99           59.0   \n",
       "Czech Republic                                       14.98           59.0   \n",
       "Estonia                                              14.90           64.0   \n",
       "Greece                                               14.91           64.0   \n",
       "Portugal                                             14.95           58.0   \n",
       "Slovenia                                             14.62           52.0   \n",
       "Spain                                                16.06           69.0   \n",
       "Korea                                                14.63           76.0   \n",
       "Italy                                                14.98           75.0   \n",
       "Japan                                                14.93           53.0   \n",
       "Israel                                               14.48           68.0   \n",
       "New Zealand                                          14.87           77.0   \n",
       "France                                               15.33           80.0   \n",
       "Belgium                                              15.71           89.0   \n",
       "Germany                                              15.31           72.0   \n",
       "Finland                                              14.89           69.0   \n",
       "Canada                                               14.25           61.0   \n",
       "Netherlands                                          15.44           75.0   \n",
       "Austria                                              14.46           75.0   \n",
       "United Kingdom                                       14.83           66.0   \n",
       "Sweden                                               15.11           86.0   \n",
       "Iceland                                              14.61           81.0   \n",
       "Australia                                            14.41           93.0   \n",
       "Ireland                                              15.19           70.0   \n",
       "Denmark                                              16.06           88.0   \n",
       "United States                                        14.27           68.0   \n",
       "Norway                                               15.56           78.0   \n",
       "Switzerland                                          14.98           49.0   \n",
       "Luxembourg                                           15.12           91.0   \n",
       "\n",
       "                 Water quality  Years in education  \\\n",
       "Country                                              \n",
       "Brazil                    72.0                16.3   \n",
       "Mexico                    67.0                14.4   \n",
       "Russia                    56.0                16.0   \n",
       "Turkey                    62.0                16.4   \n",
       "Hungary                   77.0                17.6   \n",
       "Poland                    79.0                18.4   \n",
       "Chile                     73.0                16.5   \n",
       "Slovak Republic           81.0                16.3   \n",
       "Czech Republic            85.0                18.1   \n",
       "Estonia                   79.0                17.5   \n",
       "Greece                    69.0                18.6   \n",
       "Portugal                  86.0                17.6   \n",
       "Slovenia                  88.0                18.4   \n",
       "Spain                     71.0                17.6   \n",
       "Korea                     78.0                17.5   \n",
       "Italy                     71.0                16.8   \n",
       "Japan                     85.0                16.3   \n",
       "Israel                    68.0                15.8   \n",
       "New Zealand               89.0                18.1   \n",
       "France                    82.0                16.4   \n",
       "Belgium                   87.0                18.9   \n",
       "Germany                   95.0                18.2   \n",
       "Finland                   94.0                19.7   \n",
       "Canada                    91.0                17.2   \n",
       "Netherlands               92.0                18.7   \n",
       "Austria                   94.0                17.0   \n",
       "United Kingdom            88.0                16.4   \n",
       "Sweden                    95.0                19.3   \n",
       "Iceland                   97.0                19.8   \n",
       "Australia                 91.0                19.4   \n",
       "Ireland                   80.0                17.6   \n",
       "Denmark                   94.0                19.4   \n",
       "United States             85.0                17.2   \n",
       "Norway                    94.0                17.9   \n",
       "Switzerland               96.0                17.3   \n",
       "Luxembourg                86.0                15.1   \n",
       "\n",
       "                                                Subject Descriptor  \\\n",
       "Country                                                              \n",
       "Brazil           Gross domestic product per capita, current prices   \n",
       "Mexico           Gross domestic product per capita, current prices   \n",
       "Russia           Gross domestic product per capita, current prices   \n",
       "Turkey           Gross domestic product per capita, current prices   \n",
       "Hungary          Gross domestic product per capita, current prices   \n",
       "Poland           Gross domestic product per capita, current prices   \n",
       "Chile            Gross domestic product per capita, current prices   \n",
       "Slovak Republic  Gross domestic product per capita, current prices   \n",
       "Czech Republic   Gross domestic product per capita, current prices   \n",
       "Estonia          Gross domestic product per capita, current prices   \n",
       "Greece           Gross domestic product per capita, current prices   \n",
       "Portugal         Gross domestic product per capita, current prices   \n",
       "Slovenia         Gross domestic product per capita, current prices   \n",
       "Spain            Gross domestic product per capita, current prices   \n",
       "Korea            Gross domestic product per capita, current prices   \n",
       "Italy            Gross domestic product per capita, current prices   \n",
       "Japan            Gross domestic product per capita, current prices   \n",
       "Israel           Gross domestic product per capita, current prices   \n",
       "New Zealand      Gross domestic product per capita, current prices   \n",
       "France           Gross domestic product per capita, current prices   \n",
       "Belgium          Gross domestic product per capita, current prices   \n",
       "Germany          Gross domestic product per capita, current prices   \n",
       "Finland          Gross domestic product per capita, current prices   \n",
       "Canada           Gross domestic product per capita, current prices   \n",
       "Netherlands      Gross domestic product per capita, current prices   \n",
       "Austria          Gross domestic product per capita, current prices   \n",
       "United Kingdom   Gross domestic product per capita, current prices   \n",
       "Sweden           Gross domestic product per capita, current prices   \n",
       "Iceland          Gross domestic product per capita, current prices   \n",
       "Australia        Gross domestic product per capita, current prices   \n",
       "Ireland          Gross domestic product per capita, current prices   \n",
       "Denmark          Gross domestic product per capita, current prices   \n",
       "United States    Gross domestic product per capita, current prices   \n",
       "Norway           Gross domestic product per capita, current prices   \n",
       "Switzerland      Gross domestic product per capita, current prices   \n",
       "Luxembourg       Gross domestic product per capita, current prices   \n",
       "\n",
       "                        Units  Scale  \\\n",
       "Country                                \n",
       "Brazil           U.S. dollars  Units   \n",
       "Mexico           U.S. dollars  Units   \n",
       "Russia           U.S. dollars  Units   \n",
       "Turkey           U.S. dollars  Units   \n",
       "Hungary          U.S. dollars  Units   \n",
       "Poland           U.S. dollars  Units   \n",
       "Chile            U.S. dollars  Units   \n",
       "Slovak Republic  U.S. dollars  Units   \n",
       "Czech Republic   U.S. dollars  Units   \n",
       "Estonia          U.S. dollars  Units   \n",
       "Greece           U.S. dollars  Units   \n",
       "Portugal         U.S. dollars  Units   \n",
       "Slovenia         U.S. dollars  Units   \n",
       "Spain            U.S. dollars  Units   \n",
       "Korea            U.S. dollars  Units   \n",
       "Italy            U.S. dollars  Units   \n",
       "Japan            U.S. dollars  Units   \n",
       "Israel           U.S. dollars  Units   \n",
       "New Zealand      U.S. dollars  Units   \n",
       "France           U.S. dollars  Units   \n",
       "Belgium          U.S. dollars  Units   \n",
       "Germany          U.S. dollars  Units   \n",
       "Finland          U.S. dollars  Units   \n",
       "Canada           U.S. dollars  Units   \n",
       "Netherlands      U.S. dollars  Units   \n",
       "Austria          U.S. dollars  Units   \n",
       "United Kingdom   U.S. dollars  Units   \n",
       "Sweden           U.S. dollars  Units   \n",
       "Iceland          U.S. dollars  Units   \n",
       "Australia        U.S. dollars  Units   \n",
       "Ireland          U.S. dollars  Units   \n",
       "Denmark          U.S. dollars  Units   \n",
       "United States    U.S. dollars  Units   \n",
       "Norway           U.S. dollars  Units   \n",
       "Switzerland      U.S. dollars  Units   \n",
       "Luxembourg       U.S. dollars  Units   \n",
       "\n",
       "                                     Country/Series-specific Notes  \\\n",
       "Country                                                              \n",
       "Brazil           See notes for:  Gross domestic product, curren...   \n",
       "Mexico           See notes for:  Gross domestic product, curren...   \n",
       "Russia           See notes for:  Gross domestic product, curren...   \n",
       "Turkey           See notes for:  Gross domestic product, curren...   \n",
       "Hungary          See notes for:  Gross domestic product, curren...   \n",
       "Poland           See notes for:  Gross domestic product, curren...   \n",
       "Chile            See notes for:  Gross domestic product, curren...   \n",
       "Slovak Republic  See notes for:  Gross domestic product, curren...   \n",
       "Czech Republic   See notes for:  Gross domestic product, curren...   \n",
       "Estonia          See notes for:  Gross domestic product, curren...   \n",
       "Greece           See notes for:  Gross domestic product, curren...   \n",
       "Portugal         See notes for:  Gross domestic product, curren...   \n",
       "Slovenia         See notes for:  Gross domestic product, curren...   \n",
       "Spain            See notes for:  Gross domestic product, curren...   \n",
       "Korea            See notes for:  Gross domestic product, curren...   \n",
       "Italy            See notes for:  Gross domestic product, curren...   \n",
       "Japan            See notes for:  Gross domestic product, curren...   \n",
       "Israel           See notes for:  Gross domestic product, curren...   \n",
       "New Zealand      See notes for:  Gross domestic product, curren...   \n",
       "France           See notes for:  Gross domestic product, curren...   \n",
       "Belgium          See notes for:  Gross domestic product, curren...   \n",
       "Germany          See notes for:  Gross domestic product, curren...   \n",
       "Finland          See notes for:  Gross domestic product, curren...   \n",
       "Canada           See notes for:  Gross domestic product, curren...   \n",
       "Netherlands      See notes for:  Gross domestic product, curren...   \n",
       "Austria          See notes for:  Gross domestic product, curren...   \n",
       "United Kingdom   See notes for:  Gross domestic product, curren...   \n",
       "Sweden           See notes for:  Gross domestic product, curren...   \n",
       "Iceland          See notes for:  Gross domestic product, curren...   \n",
       "Australia        See notes for:  Gross domestic product, curren...   \n",
       "Ireland          See notes for:  Gross domestic product, curren...   \n",
       "Denmark          See notes for:  Gross domestic product, curren...   \n",
       "United States    See notes for:  Gross domestic product, curren...   \n",
       "Norway           See notes for:  Gross domestic product, curren...   \n",
       "Switzerland      See notes for:  Gross domestic product, curren...   \n",
       "Luxembourg       See notes for:  Gross domestic product, curren...   \n",
       "\n",
       "                 GDP per capita  Estimates Start After  \n",
       "Country                                                 \n",
       "Brazil                 8669.998                 2014.0  \n",
       "Mexico                 9009.280                 2015.0  \n",
       "Russia                 9054.914                 2015.0  \n",
       "Turkey                 9437.372                 2013.0  \n",
       "Hungary               12239.894                 2015.0  \n",
       "Poland                12495.334                 2014.0  \n",
       "Chile                 13340.905                 2014.0  \n",
       "Slovak Republic       15991.736                 2015.0  \n",
       "Czech Republic        17256.918                 2015.0  \n",
       "Estonia               17288.083                 2014.0  \n",
       "Greece                18064.288                 2014.0  \n",
       "Portugal              19121.592                 2014.0  \n",
       "Slovenia              20732.482                 2015.0  \n",
       "Spain                 25864.721                 2014.0  \n",
       "Korea                 27195.197                 2014.0  \n",
       "Italy                 29866.581                 2015.0  \n",
       "Japan                 32485.545                 2015.0  \n",
       "Israel                35343.336                 2015.0  \n",
       "New Zealand           37044.891                 2015.0  \n",
       "France                37675.006                 2015.0  \n",
       "Belgium               40106.632                 2014.0  \n",
       "Germany               40996.511                 2014.0  \n",
       "Finland               41973.988                 2014.0  \n",
       "Canada                43331.961                 2015.0  \n",
       "Netherlands           43603.115                 2014.0  \n",
       "Austria               43724.031                 2015.0  \n",
       "United Kingdom        43770.688                 2015.0  \n",
       "Sweden                49866.266                 2014.0  \n",
       "Iceland               50854.583                 2014.0  \n",
       "Australia             50961.865                 2014.0  \n",
       "Ireland               51350.744                 2014.0  \n",
       "Denmark               52114.165                 2015.0  \n",
       "United States         55805.204                 2015.0  \n",
       "Norway                74822.106                 2015.0  \n",
       "Switzerland           80675.308                 2015.0  \n",
       "Luxembourg           101994.093                 2014.0  \n",
       "\n",
       "[36 rows x 30 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita, left_index=True, right_index=True) # 解释见上文\n",
    "full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
    "full_country_stats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GDP per capita       55805.204\n",
       "Life satisfaction        7.200\n",
       "Name: United States, dtype: float64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "full_country_stats[[\"GDP per capita\", 'Life satisfaction']].loc[\"United States\"] # 取美国的人均GDP和生活满意度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "remove_indices = [0, 1, 6, 8, 33, 34, 35] # 去掉的索引，用于去掉索引的这部分数据\n",
    "keep_indices = list(set(range(36)) - set(remove_indices)) # 保持的索引，也就是训练集的索引\n",
    "\n",
    "sample_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices] # 用来训练的数据集\n",
    "missing_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[remove_indices] # 这部分数据不参与训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure money_happy_scatterplot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f2291644400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
    "plt.axis([0, 60000, 0, 10]) # xy轴坐标范围\n",
    "position_text = {\n",
    "    \"Hungary\": (5000, 1),\n",
    "    \"Korea\": (18000, 1.7),\n",
    "    \"France\": (29000, 2.4),\n",
    "    \"Australia\": (40000, 3.0),\n",
    "    \"United States\": (52000, 3.8),\n",
    "} # ’城市‘：标注的在图表中的xy轴坐标\n",
    "for country, pos_text in position_text.items():\n",
    "    pos_data_x, pos_data_y = sample_data.loc[country] # 获取当前国家的人均GDP和生活满意度\n",
    "    country = \"U.S.\" if country == \"United States\" else country # 把United States替换为U.S.\n",
    "    plt.annotate(country, xy=(pos_data_x, pos_data_y), xytext=pos_text,\n",
    "            arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5)) # 画标注，xy：箭头指向的坐标，xytext：文字及坐标，arrowprops：箭头参数（arrow property）\n",
    "    plt.plot(pos_data_x, pos_data_y, \"ro\") # 把这几个国家标记出来，r：红色，o：圆形标记（circle marker）\n",
    "save_fig('money_happy_scatterplot')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "sample_data.to_csv(os.path.join(\"datasets\", \"lifesat\", \"lifesat.csv\")) # 保存csv文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GDP per capita</th>\n",
       "      <th>Life satisfaction</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Hungary</th>\n",
       "      <td>12239.894</td>\n",
       "      <td>4.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Korea</th>\n",
       "      <td>27195.197</td>\n",
       "      <td>5.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>France</th>\n",
       "      <td>37675.006</td>\n",
       "      <td>6.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Australia</th>\n",
       "      <td>50961.865</td>\n",
       "      <td>7.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>United States</th>\n",
       "      <td>55805.204</td>\n",
       "      <td>7.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               GDP per capita  Life satisfaction\n",
       "Country                                         \n",
       "Hungary             12239.894                4.9\n",
       "Korea               27195.197                5.8\n",
       "France              37675.006                6.5\n",
       "Australia           50961.865                7.3\n",
       "United States       55805.204                7.2"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample_data.loc[list(position_text.keys())]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure tweaking_model_params_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22915fada0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
    "plt.axis([0, 60000, 0, 10])\n",
    "X=np.linspace(0, 60000, 1000) # 生成0-60000，步长为1000的ndarray\n",
    "plt.plot(X, 2*X/100000, \"r\")\n",
    "plt.text(40000, 2.7, r\"$\\theta_0 = 0$\", fontsize=14, color=\"r\") # r\"$公式$\" \n",
    "plt.text(40000, 1.8, r\"$\\theta_1 = 2 \\times 10^{-5}$\", fontsize=14, color=\"r\") # 这几句意在说明，通过选择合适的参数theta0和teta1可以找到适配数据的线性模型\n",
    "plt.plot(X, 8 - 5*X/100000, \"g\")\n",
    "plt.text(5000, 9.1, r\"$\\theta_0 = 8$\", fontsize=14, color=\"g\")\n",
    "plt.text(5000, 8.2, r\"$\\theta_1 = -5 \\times 10^{-5}$\", fontsize=14, color=\"g\")\n",
    "plt.plot(X, 4 + 5*X/100000, \"b\")\n",
    "plt.text(5000, 3.5, r\"$\\theta_0 = 4$\", fontsize=14, color=\"b\")\n",
    "plt.text(5000, 2.6, r\"$\\theta_1 = 5 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
    "save_fig('tweaking_model_params_plot')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4.853052800266436, 4.911544589158483e-05)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn import linear_model\n",
    "lin1 = linear_model.LinearRegression()\n",
    "Xsample = np.c_[sample_data[\"GDP per capita\"]] # 实例\n",
    "ysample = np.c_[sample_data[\"Life satisfaction\"]] # 标签\n",
    "lin1.fit(Xsample, ysample) # 训练\n",
    "t0, t1 = lin1.intercept_[0], lin1.coef_[0][0] # 截距，系数，即上文的theta0和theta1\n",
    "t0, t1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure best_fit_model_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22914932b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n",
    "plt.axis([0, 60000, 0, 10])\n",
    "X=np.linspace(0, 60000, 1000)\n",
    "plt.plot(X, t0 + t1*X, \"b\") # 将训练出的模型绘制出来，看其与数据的拟合程度\n",
    "plt.text(5000, 3.1, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n",
    "plt.text(5000, 2.2, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
    "save_fig('best_fit_model_plot')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "22587.49\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "5.96244744318815"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cyprus_gdp_per_capita = gdp_per_capita.loc[\"Cyprus\"][\"GDP per capita\"] # 取塞浦路斯人均GDP数据\n",
    "print(cyprus_gdp_per_capita)\n",
    "cyprus_predicted_life_satisfaction = lin1.predict(cyprus_gdp_per_capita)[0][0] # 通过塞浦路斯人均GDP预测其生活满意度,预测出来是一个ndarray，我们要打印数值，所以加[0][0]\n",
    "cyprus_predicted_life_satisfaction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure cyprus_prediction_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f229c01cb70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3), s=1) # s:大小\n",
    "X=np.linspace(0, 60000, 1000)\n",
    "plt.plot(X, t0 + t1*X, \"b\")\n",
    "plt.axis([0, 60000, 0, 10])\n",
    "plt.text(5000, 7.5, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n",
    "plt.text(5000, 6.6, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n",
    "plt.plot([cyprus_gdp_per_capita, cyprus_gdp_per_capita], [0, cyprus_predicted_life_satisfaction], \"r--\") # --：绘制虚线\n",
    "plt.text(25000, 5.0, r\"Prediction = 5.96\", fontsize=14, color=\"b\")\n",
    "plt.plot(cyprus_gdp_per_capita, cyprus_predicted_life_satisfaction, \"ro\")\n",
    "save_fig('cyprus_prediction_plot')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GDP per capita</th>\n",
       "      <th>Life satisfaction</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Portugal</th>\n",
       "      <td>19121.592</td>\n",
       "      <td>5.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Slovenia</th>\n",
       "      <td>20732.482</td>\n",
       "      <td>5.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Spain</th>\n",
       "      <td>25864.721</td>\n",
       "      <td>6.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          GDP per capita  Life satisfaction\n",
       "Country                                    \n",
       "Portugal       19121.592                5.1\n",
       "Slovenia       20732.482                5.7\n",
       "Spain          25864.721                6.5"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample_data[7:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.766666666666667"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(5.1+5.7+6.5)/3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "backup = oecd_bli, gdp_per_capita #下方要对这两个数据集进行操作，所以先备份这两个数据\n",
    "# 代码重复，解释见上文\n",
    "def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
    "    oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n",
    "    oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n",
    "    gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n",
    "    gdp_per_capita.set_index(\"Country\", inplace=True)\n",
    "    full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,\n",
    "                                  left_index=True, right_index=True)\n",
    "    full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n",
    "    remove_indices = [0, 1, 6, 8, 33, 34, 35]\n",
    "    keep_indices = list(set(range(36)) - set(remove_indices))\n",
    "    return full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22ac831320>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[5.96242338]]\n"
     ]
    }
   ],
   "source": [
    "# Code example\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn\n",
    "# 代码重复，解释见上文\n",
    "# Load the data\n",
    "oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n",
    "gdp_per_capita = pd.read_csv(datapath + \"gdp_per_capita.csv\",thousands=',',delimiter='\\t',\n",
    "                             encoding='latin1', na_values=\"n/a\")\n",
    "\n",
    "# Prepare the data\n",
    "country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)\n",
    "X = np.c_[country_stats[\"GDP per capita\"]]\n",
    "y = np.c_[country_stats[\"Life satisfaction\"]]\n",
    "\n",
    "# Visualize the data\n",
    "country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\n",
    "plt.show()\n",
    "\n",
    "# Select a linear model\n",
    "model = sklearn.linear_model.LinearRegression()\n",
    "\n",
    "# Train the model\n",
    "model.fit(X, y)\n",
    "\n",
    "# Make a prediction for Cyprus\n",
    "X_new = [[22587]]  # Cyprus' GDP per capita\n",
    "print(model.predict(X_new)) # outputs [[ 5.96242338]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "oecd_bli, gdp_per_capita = backup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GDP per capita</th>\n",
       "      <th>Life satisfaction</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Brazil</th>\n",
       "      <td>8669.998</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mexico</th>\n",
       "      <td>9009.280</td>\n",
       "      <td>6.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chile</th>\n",
       "      <td>13340.905</td>\n",
       "      <td>6.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Czech Republic</th>\n",
       "      <td>17256.918</td>\n",
       "      <td>6.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Norway</th>\n",
       "      <td>74822.106</td>\n",
       "      <td>7.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Switzerland</th>\n",
       "      <td>80675.308</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Luxembourg</th>\n",
       "      <td>101994.093</td>\n",
       "      <td>6.9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                GDP per capita  Life satisfaction\n",
       "Country                                          \n",
       "Brazil                8669.998                7.0\n",
       "Mexico                9009.280                6.7\n",
       "Chile                13340.905                6.7\n",
       "Czech Republic       17256.918                6.5\n",
       "Norway               74822.106                7.4\n",
       "Switzerland          80675.308                7.5\n",
       "Luxembourg          101994.093                6.9"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "missing_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "position_text2 = {\n",
    "    \"Brazil\": (1000, 9.0),\n",
    "    \"Mexico\": (11000, 9.0),\n",
    "    \"Chile\": (25000, 9.0),\n",
    "    \"Czech Republic\": (35000, 9.0),\n",
    "    \"Norway\": (60000, 3),\n",
    "    \"Switzerland\": (72000, 3.0),\n",
    "    \"Luxembourg\": (90000, 3.0),\n",
    "} # 画图表所需的missing_data标注坐标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure representative_training_data_scatterplot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22914575f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 看完这里即可知道为什么前面要去掉一部分数据再进行训练\n",
    "sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n",
    "plt.axis([0, 110000, 0, 10])\n",
    "# 解释见上文\n",
    "for country, pos_text in position_text2.items():\n",
    "    pos_data_x, pos_data_y = missing_data.loc[country]\n",
    "    plt.annotate(country, xy=(pos_data_x, pos_data_y), xytext=pos_text,\n",
    "            arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n",
    "    plt.plot(pos_data_x, pos_data_y, \"rs\") # s：方形标记（square marker）\n",
    "\n",
    "X=np.linspace(0, 110000, 1000)\n",
    "plt.plot(X, t0 + t1*X, \"b:\") # 绘制之前训练的模型(去掉missing_data后的数据),':':点线\n",
    "\n",
    "lin_reg_full = linear_model.LinearRegression()\n",
    "Xfull = np.c_[full_country_stats[\"GDP per capita\"]]\n",
    "yfull = np.c_[full_country_stats[\"Life satisfaction\"]]\n",
    "lin_reg_full.fit(Xfull, yfull)\n",
    "\n",
    "t0full, t1full = lin_reg_full.intercept_[0], lin_reg_full.coef_[0][0]\n",
    "X = np.linspace(0, 110000, 1000)\n",
    "plt.plot(X, t0full + t1full * X, \"k\") # 绘制没有去掉missing_data的数据训练的模型\n",
    "# 比较两条线可知，训练数据不足时，训练出来的模型不是很准确\n",
    "save_fig('representative_training_data_scatterplot')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/zhangxj/anaconda3/lib/python3.6/site-packages/numpy/core/_methods.py:121: RuntimeWarning: overflow encountered in multiply\n",
      "  x = um.multiply(x, x, out=x)\n",
      "/home/zhangxj/anaconda3/lib/python3.6/site-packages/numpy/core/_methods.py:122: RuntimeWarning: overflow encountered in reduce\n",
      "  ret = umr_sum(x, axis, dtype, out, keepdims)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure overfitting_model_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XecXHW9//HXZ2a2JLvZdFJJDwlJSCGhSAdpci9cICiIoFflAiqIIu1nuSpWQMSCoLmCKKhIExBRkI5EggkkIY1USE82m7LZzbaZ+f7+OGc2s7NtdmdmZ2b3/Xw8ziMz58w557tnT/Z85vNt5pxDREREpDsJZLsAIiIiIummAEdERES6HQU4IiIi0u0owBEREZFuRwGOiIiIdDsKcERERKTbUYAjIiIi3U6XBjhmdo2ZLTSzOjN7IGHbh81slZkdMLOXzWx0V5ZNREREuo+uzuBsBb4L3B+/0swGAU8A3wAGAAuBP3Vx2URERKSbCHXlyZxzTwCY2RxgZNymC4HlzrlH/e3fAnaZ2WTn3KquLKOIiIjkvy4NcNowFVgSe+Ocqzazdf76JgGOmV0JXAlQUlIye/LkyV1ZThHpYuGoY+W2Sob1LWZQaVHj+qhzLN9aydCyYgb3KWrjCJKqd7fs45A+RQwpK874udbsqKIwFGD0wN4ZP5e0bfWO/RQXBBk1ILd+F4sWLdrlnBvc3udyJcApBcoT1u0D+iR+0Dk3D5gHMGfOHLdw4cLMl05EsmbB+gounvcmD3z6KE6ZdEjjeuccE772N646aRw3na0vOpk05pa/ct2HJ/LlMw7L+LnOuus1xg4q4ZeXz874uaRtZ971KuMHl3LvZbn1uzCzD5L5XK70oqoCyhLWlQH7s1AWEckh68qrAZhwSGmT9WZG314FVNY2ZKNYIpLjciXAWQ7MiL0xsxJgvL9eRHqwtTur6FUQZHjfXs22lRWH2FcTzkKpRCTXdXU38ZCZFQNBIGhmxWYWAv4MTDOzuf72/wWWqoGxiKwrr2Lc4BICAWu2rW+vAiprlMERkea6OoPzdaAGuAW4zH/9dedcOTAX+B6wBzgGuKSLyyYiOWhdeRXjB5e2uK1MVVQi0oqu7ib+LeBbrWx7AVBLQRFpVFMfYcveGj4259AWt/cuDLKzsq6LSyUi+SBX2uCIiDSzflcVztFqBqekKER1vdrgiEhzCnBEJGfFelCNP6Skxe0lhSGq6xTgiEhzCnBEJGet3VlFwGDMwJYDnN5FQarrI11cKhHJBwpwRCRnrSuv4tABvSkuCLa4vbQwRH04SkMk2sUlE5FcpwBHRHLWup2t96AC6F3k9ZM4UKcsjog0pQBHRHJSJOpYv6ua8YNbrp4CKC3yMjtVamgsIgkU4IhITtqyp4b6cLTZFA3xehfGMjgKcESkKQU4IpKT1pVXAa13EQcoiWVwFOCISAIFOCKSk9bs9ObabTPA8TM41WqDIyIJFOCISE5auW0/Q8uK6V9S2OpnehV6GZzaBgU4ItKUAhwRyUkrtlZy+LA+bX6ml999vEYBjogkUIAjIjmnLhxhXXkVhw8ra/NzxQpwRKQVCnBEJOes2VFFOOqSDnDqFOCISAIFOCKSc1ZuqwRgyvC2A5xYGxxlcEQkkQIcEck5K7ZVUlwQaHUOqpjikPcnrKZeUzWISFMKcEQk56zcVsmkoWUEA9bm50LBAAVBozasDI6INBVK9oNmdjHwYeAQEgIj59x5aS6XiPRQzjlWbtvPOUcMTerzxQVBajSjuIgkSCrAMbM7gC8BLwNbAZfJQolIz7VhVzX7ahqYPrJfUp/vVRDUODgi0kyyGZxPAh93zj2WycKIiLy9cS8As0f3T+rzxQpwRKQFybbBCQCLM1kQERGARR/soU9xiAltTNEQr1dBUL2oRKSZZAOcecBlmSyImY0xs2fNbI+ZbTezu80s6TZCItI9vLNxDzMP7UegnQbGMcWFQWoa1ItKRJpKNoDoB1xqZmcAS4GG+I3OuS+moSz3ADuBYf75/gF8HvhZGo4tInlg74F63tuxn7OnJdfAGKBXQUBVVCLSTLIBzhQOVlFNTtiWrgbHY4G7nXO1wHYz+zswNU3HFpE8MH9dBc7BiRMHJb1PcUGQ3dX1GSyViOSjpAIc59ypmS4I8FPgEjN7BegPfAT4RhecV0RyxOtryulTFGJGkj2oAIpCAerDqqISkaY6NNCfmRWb2TQzm2pmxWkuy6t4GZtKYDOwEHiyhTJcaWYLzWxheXl5mosgItninOO11bv40PiBhILJ/2kqDAWpU4AjIgmS+itiZgX+WDh7gCXAu8AeM7vdzApSLYSZBYDngCeAEmAQXhbntsTPOufmOefmOOfmDB48ONVTi0iOWLGtki17azhl0iEd2q8oFNBkmyLSTLJfk27D60V1NXAYMBH4HHA58IM0lGMAcCheG5w651wF8BvgnDQcW0TywF+WbCMUsA41MAa/iiqiDI6INJVsI+NLgc84556NW7fOzMqBXwM3pFII59wuM9sAfM7MfgSUAp/CyxaJSDcXjTqeWbqVEyYOYkBJYYf2LQwFqFM3cRFJkGwGpy+wroX16/C6dKfDhcDZQDmwFggDX07TsUUkiyqq6liyaS8VVXUtrn96yVY276nhglkjOnzsIrXB6VbC0Sj7ahqa3SsiHZVsBmcJ8EXgCwnrryNNIxw75xYDp6TjWCKSO55avIWbH19KQSBAQzTK7XOnc97MEU3WV9eH6d+7gHOOGNbh48eqqJxzmCU3OKDkpqcWb2F9eTUfVBzg+NtearxXRDoj2QDnJuBZf6C/f+GNffMhYDhed26RHq2iqo7Ne2oY2b8XA0uLesy521NRVcfNjy+ltiFKLV6W5abHlzJlWFmz9ftrw1TWNHT4Zygq8BLRdeEoxQXB9P4A0mhHZS0VVXUZu8di94oDwlFHOOq46fGlHD9hUM7d15Ifkh0H5zUzOwwvgzMZMOBR4B7n3NYMlk8k57WWoYiXqSCkvXNXVNWxfGsl4Jg6vG+XPyg276mhIBBoDGIAgmYs3rS32friUIDNe2o6XMbCoAKcTHpq8RYAnnh7M08u3pKxrEpL90pBoHP3hAgkn8HBD2S+lsGyiOSd1jIU8d86kwmAMnHupxZv4SuPLCbWPKUgaNz50RldmvIf2b8XDdGm7WOq6yPsPlBPfaRp1+6wc4zs36vD5yjyg5q6cARIedQKiRO7xwDqIw4imcuqtHSvNESjnbonRKCNRsZmdqQ/Pk3sdatL1xVXJLfEvnXGi33rhKZByP66MLUNUW56fGlaGlC2de6KqjpuemwJ8W1vGyKOGx9Lz7nbE2s8DPCN/5jSbPttf19F0C97cShAcUGA2+dO79RDM+z/kDv31aZQYmlJe/d3Og0sLeL2udMxIBSwlO4JEWg7g7MQGIo3AeZCvHY3LbXgc4DywtIjtfetM5Np97bOvXlPDUELAE2zJMGAZTzl/9TiLdz42BJw0BB1hFqYFTwShSnDyrjxrEkUFwQ7XXX31OItfP9vKwG48Jfz+dFFXZuh6u66Oqty3swR/PTFNRzSp5i7L52l4EZS0lY38bF4XbZjr8f5/yYu4zJZwHz00qodXP+nxWzXN8puL/ats7ggQJ+iULNvnZl8QMTOXRQyehcEKQwanz5uDO9XVBN1jnC0+ei+kWjnqoGS9cqqnXz5T4upDzvqIw7nvHMGE4KcopDxq8tnc8y4gcw4tF+nHmSx7FhDxJvvtz7s0pYdE0/sHgMoDHZNViUUCNC3V4GCG0lZqxkc59wH8W+BTc65ZjOHm9moTBQsX9WHo/y/J95lR2UdtQ0Rrjp5fMZ7t6zaXslv539AfTjKBbNGcEIHZmKW1J03cwTHTxjUYiPi2APipoQ2OKncD+t27ufZZdtZvX0/y7dV0hBx1DkvmLn31fXc++p6INb4Ni5zFDTuuCgzD6d9NQ3c9vdV/GHBxmZp3pLCEFeeNI5fvLKWgkCA+kiEa06dmPI51Si1a5w3cwRffHgxFx45khvPmqRrK3kj2UbGG4BheNVVjcxsoL9NVVS+Fdsq2VFZR2lRiGeXbee11eWEnctYz4OnFm/hhkeXUBQKUhgK8Pjbm/nv48bwzXOnaEyQLhR1UF0X5o11FdQ2RCgMBujXu4ChfYs5c+rQVgOgZOyorOHlVeWs3VnF8yt2sHH3gcZt00aUcc1pExk/uIQBJYUUFwQ5UB9hR2UtK7dVMn/tLt7bUQXA7FH9GVhalPbxYp5bvp2vP7mMiqo6PnHMKB5btIm68MHvQg3RKJceM4pLjxnF7xds5Bcvr2Xea+v5xStrU/p/oUapXWtIWbGCmx4mEnXs9QddzMfffbIBjuFlcRKVAqqHiRNrWFkb9r5RV9V7/2ai58GSTXu58dGlzBrVn19eNpvehUF++LdVPDD/fcqKQ1x/5qS0nUua27znAH98ayPPLd/B2p1VrX4uYHDogN5MGFzKhCGlTDykDxMPKWXMwBLKeoWaBBvRqGP3gXpWb9/Psq37eGbpNpZu3te4PTEsWbuzit9++uhW76v49jBvbtjNm79ewNThZVx72gTOnDKUQAvtY5K1r6aBbz+9nCfe2cLU4WX85r+PYtqIvhwzdkCLGauKqjrueWUtdeFo48jDqfy/iGXHbnh0CfURR0HQ1ChVJE26w6CLbQY4ZvYz/6UDfmBmB+I2B4GjSdNIxt3Fiq2V9O1VQCQSpSquG2y6U+fRqONrT77LwNJCfnXZbPr78/d889wpVNWF+fnLazluwiCOHTcwLedLJ+cclbVhikKBvBy3ZOf+Wn78/GoeWbgJgOPGD+LiOYcyZXgZQ8qKKAoFaYhE2XOgni17a1m3s4q15VWs21nF62t2NZkYMhQw+vUuJBQwwlHHvpr6xjYlLUnc0tZ9FWujUh+XTQkFvAH1rn7obQ4bUsoXTp3Af04f3qyNTHteXV3OzY8tpbyqji9+eCLXnjaBAn88mtaq7DJRpXTezBH0713I5fe/xW15+AdYJBd1l0EX28vgHOH/a8DhQH3ctnrgbeBHGShX3tq05wBjBvbmvR37m6yvj0TSkjqPDRi3dPNelm2p5CcXz2wMbgDMjG+fN5V/v7+br/75XZ770kmND55s27T7APe8so7nlm9nd7V3K004pJTzZw7nk8eNoaw498cweWrxFr7+5DJqGyJ86rgxXHHiOEb0a/33Ont00/fhSJSNuw+wZmcVm3YfYHd1PXsO1Dc2xO3bq5AhZUWMH1yKAZ///dvsrwu3evy2qmRaCijCUZh75AjGDCrh7pfWct3Di/nJC2v4/CnjOX/WiHbvlQ27qvn+syv5x4odTDiklHmfnM30kc2noxtYWtTsD2GmqpQG9fHO0ysPg2WRXNRd2re1GeA4504FMLPfANc55yq7pFR5bPOeGmaN6sdnTxjLdQ8vbvzGHXXwxtpdKX3DjA0YFzKjuj7C8L7FnDdjeLPPlRSF+No5h3Plg4t4+N+buPzY0S0crWs99OYH3PrMCgw4e9pQpg3vS21DhPnrKvjR86t56M2N3HbRdE4+bHC2i9qihkiUbz69nD8s2Mjs0f2546LpjBtc2uHjhIIBxg0uTWrfiqq6ZgFBKADBQIDCYPsNlkf279VsMD2Ae15Zx/xbTuPc6cN5fsV2fv7SWm58bCk/eWENF8wawamTBzNlWF96FQZxzrG7up4FG3bz5DtbeGHlDnoVBLnxrEl89oSxHcrAZaLBNdAYlDVEW898iUjyukv7tmTb4HwVKAOaBDhmNhJocM7tSHfB8lEk6ti6t4ZzZwzj+AmDCASMiP9HtyHFEUDjB4yL2VlVx54D9S0e74wpQzh6zAB+8o/VXDBrBKVFSQ9anVbOOe58fjV3v7yWkw8bzG1zpzO0b3Hj9ms/PJF3Nu7hxseW8qn73+Kr50zmf04cl1MNpPfXNvD537/N62t2cfXJ47nhzMMIdUFWrLWAINkGywNLi7jm1Inc+Y/VTdYXBg9+Ezt72jDOmjqUl9/byX3/3MA9r6zl7pfXYgalhSEiznHAb0c2oKSQq04ez6ePH8MhfYpbOmW72upx1lkFQe9eadCM4iJpEfvbc93DiwkGjFCetm9L9qn3O+AR4P8S1p8FXAycmc5C5aud+2sJRx3D+3kDrRUGjZq4b5WppPhaShkWB1s/nplxyzmTufCe+fxhwQdcedL4Jtu7aoLGu15Yw90vr+WSow7l+xcc0WKj1lmj+vPMtSfwlUeX8P1nV7HnQANXnDA2JyaQrKxt4PL73mL5ln3cPnc6Hzvq0JSP2ZFr31pAkOw1ufSYUdz98trGRr3Q/JuYmXHa5CGcNnkIFVV1LPpgDyu37WdfTQNmMKxvMbNG9WPGyH5pCexaqr5KRWMGJ6IARyRdGgddLCvm7o/n56CLyQY4RwHXtLD+deCO9BUnv1VUee1KBpUWMbJ/L6IJwwalkuJrKWXY3tw9R47qz3HjB/Lr1zfwqePGUBTyqhMyNTdSor8u3cbPXlzDR2ePbDW4iSkuCPLzS2bRt1cB976yjv97bT29CoIZLV97Kmsb+OR9b7Fi6z7uvWw2Z0wZkvIxO3PtUwkIBpYWccdFyVcLDSwt4sypQzlz6tBOnS8bVEUlkhnBgNEvjwddTPbrWAho6ScsbmV9j7TLH0F1UGmh/2CZAUBBGuZViaUMY+n4ZLvEXn3yeHbur+PJd7wZgTM5N1K89eVV3PDoEo4c1Y/vXjAtqe7IgYDx5dMnEjCv5X4my9ee+nCUK3+3kGVb9vGLS49MS3DTVdc+0XkzR/DGzafx0BXH8MbNp3W7nkaqohKRliQb4CwAPtfC+i8A/05fcfJbrGfQgBIv6Dhv5giOGNGXycPK0vJgOW/mCE4+bDB9exXwz5tPTep4J04cxNThZcx7bT3RqOuSyfMiUW9Sx8JQgHsvm92YOUrG1r219E5ouJqpyf1a45zjlseX8ub63dzx0elpy2Z05cSFiQaWFnV6SoRcpyoqEWlJslVUXwNeMrMZwIv+utOAWcDpmShYPopVUQ0sPdhte+KQUuavrUjLg6WmPsI/1+7iotkjGVKWXFWXmXHFiWP58p+W8OqacqaP6Jvx1vG/eWMDiz7Yw10Xz2BIWccao47s34twQtVeurrYJ+unL67hiXe2cP0Zh3HBrJFpO2536ZmQa2IBTlhVVCISJ6kMjnPuTeBDwHrgQmAu3hQNH3LOzc9c8fJLRXU9BUGjT1yPpXGDStheWUt1G2OZJOvN9RXUNkQ5c0rHMgr/ccRwDulTxP3/3NDu5JCp2lhxgDuee48zpgzh/E5krOLLF8vkDO/Xmz5dNEbOE29v5icvrOGi2SO59rQJaT12pq99TxWroqpXFZWIxEm677BzbglwWQbLkvd2V9cxoKSwSRfnsYO88U7er6hm6vC+KR3/1dXlFBcEOHrsgA7tt7+2gTOnDOGhBRt5b/v+jHTVjfnesysIBozvnj+t012948u3Ylsl/++Jd7n1meV89/wj2t85Bf9aV8HNjy/luPED+f4FR2Skq3omr31PZWb+SNAKcETkoA4PjmJmQ4HC+HXOuY1pK1Eeq6wJ07dX00zD2EElgDcCbKoBzmtryjlm7MAODa4WPzggwDefXsbDV34o7V11Aeav28Vzy3dw41mTOlw1lShWvhmH9uP9imp+9ep6po/sx8fmpN5NuyVrd1Zx1YMLGTOwhHsvm01hKHPj3GTi2vd0BcFAm1NciEjPk9RfcTPra2a/NbMaYAte9VT8kjZmdomZrTSzajNbZ2YnpvP4mVRZ29BsuoGyYi+GXLE1tUGgN+0+wPryak7qwEi/8b12YpN+vrl+N2sSppFIh0jUcetfVjCiXy8+e8LYtB77xjMnccKEQXz9yWUs3by3w/tXVNWxZNPeVnsrVVTV8ekH3qIwFOD+/z6qWZAquS8UNFVRiUgTyX5N/REwAzgfb/bwS4Ebgc14A/2lhZmdAdwGfBroA5yE1+4nL+yvDVMW93B8avEWTr/rVQz45avreHrxlk4f+7U15QAdmsqgpV47APe/kdaYFIA//XsTq7bv56vnHJ72CTRDwQA///gsBpcWcfWDixq74yfjqcVbOP62l7js1ws4/raXmv0OahsiXPG7hZTvr+PXnzqKQwf0bjcgktxTGAyoikpEmkg2wPkIcK1z7jkgAixyzv0YuAW4Ko3l+TZwq3PuTedc1Dm3xTnX+aigi1XWNtDHz9jEZ08c3lxUqYx58s81uxjet5jxg0uS3qelXjsBg+eX76Au3HyOos6qrG3gzuff4+gxAzjniMwMENe/pJBfXT6biup6rvnD24ST6BLc3rgz0ajjK48sYfGmvfzk4lnMPLRfuwGR5KZQ0GgIq4pKRA5KNsDpB3zgv94HDPRf/ws4Lh0FMbMgMAcYbGZrzWyzmd1tZr0SPnelmS00s4Xl5eXpOHXaVNYcrKJK15gnFVV1LN64hzfXV3DsuIEdavjaUq+dq08eT0V1PU8v3tqhcrTl7pfWsvtAPf977pSMziE1bURffnDhEby5fjdXP7SIXftr2/x8W78D5xzfeGoZf313G1/9yOGcPW1o1gbik9R5bXCUwRGRg5JtZLwOGAdsBFYCl5jZW3hdxnenqSxDgALgIuBEoAF4Cvg63jg8ADjn5gHzAObMmZMzX9mcc34VlXdJW8qedHQ8l1gD4QDGgYYIRZ1o+JrYa2dASSEvrvQmVrxo9siUA5L3d1Xzmzc28NHZI5k2IrVG1MkIBoxgAF5YuZNjfvAid31sZqsDHrY27syIfsV855mV/H7BRj53yniuONFrM9TSfF+pzB8mXcebXT1n/hyISA5I9on5ADDdf/1DvGqperx5qG5LU1liqY2fO+e2Oed2AT8GzknT8TOqpiFCOOoax2uJz5708gOTz50yIekHZXw24UCDV530+DubO5VNiB/F1sz4zAljWLV9P/9aV9HhYyWW8abHllIQDHDDWZNSOlay57v58aXEvqhHovDlRxa3mslpKYP1wwuO4CcvruH+Nzbw6ePHcNNZkxqDPA3El7+8KiplcETkoGQH+rvLOfcz//VLwGS8xsUznXN3p6Mgzrk9eI2W8/JrWGWNN5BfrA0OHJwD6McXzwS8Nh/JBigtVa8UpmlY//+aOYKBJYXc++q6TjemfWrxFo79wYu89f5u6sNR3kwxWEpGS9ckEoWv/XlZq22K4udh+uu1J/D00m089KaXufnf/2xapaaB+PKXqqhEJFGrVVRmFgGGOed2mtn9wHXOuf3QOO5NJsa++Q1wrZn9Ha+K6kvAMxk4T9pV1cUCnKZdjAeWFlHjZ2B++eo65r2+PqkZpDsze3iyiguCzBnTn+eW7+Dt9/cQwXVoxm4vc7OkcdyRcNRx0+NLOX7CoIwGAy1dk2AAnluxg/+6+w1+OHc6Mw/t12y/ASWFLNiwm1v/soLd1fV85/xpXH7s6BbPoYH48lOBqqhEJEFbbXBqgFJgJ/Ap4GYg/QOoNPUdYBCwGq87+iPA9zJ8zrQ4UO8FOCWFTbtIV1TV8dU/vwtAfcRBJLlgIJZNuOGxJdSHHaFAcrOHJ6Oiqo5X3tsJQLUffHUkQPGySEZ8sq0r2qrErslNjy+lIBCgIRrl9rnTKSkKcfPjSzn/F29w4sRBnDl1KBMPKaUhEmX51kqeWryVldsqmTSkD7/+1Jx22wppIL78U6AqKhFJ0FaAMx940swW4T3NfuYP9NeMc+4z6SiMc64B+Ly/5JUD/kB6vRICnFQarp43cwTl++v4zl9X8vCVxzJnTMemaGjN5j01FAaD1IUPzo/VkQClKBSgLpydtiqtZVheufFUfjv/ff741ka+8eSyJvtMG1HG7RdNZ+6RIwkGMtfLS7JHVVQikqitAOdy4AZgAt5X9YGA+su24mAGp+klTbXh6vJtlQwsKWT26P7pKWgayvSTF9ZQEDTMoCgYbMykdFXWo6UMS2lRiC+cOoHPnzKejbsPsHlPDaGAMW5wKYP7KBvT3RUEA1TXp29sJxHJf60GOM65HXijFWNmG4CPO+cy35I0T1XXeX9cS4qaZnBi1SrXP7qEcMRRGOpYVdNbG3Zz9NgBaR1fJr6qJxp11EccV588PqkyPbV4C39fvp1bPjKZj84emXNtVcyM0QNLGD0w+QERJf+pikpEEiXbi2psYnBjZpqwJ04sg9O7sHnMeN7MEdx76ZEA3PnR1sdtSbR1bw2b99RwVJqqphLL9MbNp/G7zxzDkLIinl68lZp2vgGv3bmf//fEuxw1pj9XnDC2SfdzkWwq0FQNIpIg2ck2v2hmc+Pe3wfUmNl7Zpb5AVDyQGMGp4UAB2DmKK+KqSPzKP37fW8MxaPHpj/AAS+Tc+z4gfz4YzNZv6uarz35Ls613BNld3U9Vz64iF4FQX7+8SMJBTM327ZIR4U0m7iIJEj2KfVFoBzAzE4CPoY34eZi4M7MFC2/xDI4iY2MYwaVFtKnKMSGXdVJH3PBht30KQpx+LCytJSxNcdPGMSXTz+MJ97ewg/+tqoxyIlNOrli6z4+8esFbNlTwz2fOJKhfYszWh6RjirQbOIikiDZqRpGAO/7r88FHnXOPWJm7wKvZ6Jg+aa6PkJhMEBhK9MpmBnjBpewvjz5AOetDbuZPaZ/l/T8+eKHJ7Crqo55r61n+dZ9HDGiL/e/sQFzRl0kSlEowP99cg7HjBvY/sFEuphmExeRRMlmcCqBwf7rM4AX/dcNgL7OAwfqwvQuajl7EzN2UEnSGZyKqjrW7qzKWPVUIjPj1v+aynfPn8bSzfv45avrqQ876vyutw7H1OGZzSSJdFYoaKqiEpEmkg1wngf+z297MwH4m79+KrAhEwXLN9X1EXoXtB3gjBtcypa9Ne025gX49/t7ABjQu7DLZrM2My47djT3fXIOvQqa3hpFwWBapokQyYSCYEC9qESkiWQDnC8Ab+CNMnyRcy42g/iRwB8zUbB8U9sQobiV9jcxhw0pBWD1jvYHhP7jW95MGN99ZgXH3/YSTy/eknoh2xBrb1NRVcf4Q0qbTQimSScll3mziSvAEZGDkmqD45yrBK5tYf03016iPFXbEKU41HaAM3moV8UVTuQEAAAWeUlEQVSzanslM1qYMymmoqqO19aUA1BV3/GpFDrqqcVbuDlh+oOWpkRQd3DJVaqiEpFEbU22OSCWqTGzNhuCxGV0eqy6cISigrYTYqMG9KakMMjKbW1ncFbv2E9ib+1MzfVUUVXHzY8vpbYh2jidxE2PL+WNm0/jjZtPy7mB/ERaUhAMEIk6olFHQNNxiAhtZ3DKzWyYc24nsAua1VrAwRkX205d9AB1Ya+nUVsCAWPS0D6s2FbZ5ue2V9Y2W5epKqK25srSIH6SLwr8cZkaolGKAj3+z5GI0HaAcxqwO+618r9tqAtH6d+7/cGdDx9Wxl+WbMU51+r0C4s37qUgaAQMCjM811Oq81KJ5IKCoPd/qSHiKEp28AsR6dbamovq1bjXr3RJafJYXUOEolD7AciU4WX8fsFGNu2uYdTA3i1+5rU1uzh+wiDu/OiMjFcRxc9LpfY2kq9iGZywZhQXEV9S33XMLALEqqvi1w8EdjrnenxO2Kuiav8yHOlP2bBo4+4WA5xNuw+wYVc1lx87usVZszPhvJkjOH7CILW3kbwVmzqkXgGOiPiS7SbeWqu9IqA+TWXJa14Gp/3LediQPvQpCjWOc5Po1dVe76mTJw1ucXumaOJMyWeFcVVUIiLQTgbHzK73XzrgajOritscBE4EVmWobHmlNhyluJ2B/gCCAWPW6P4saiPAGdGvF+MGlaS7iCLdlqqoRCRRe1VUsbFvDLgCiB+Ctx5vfqqr01+s/JNsBgdgzuj+3PXCavYeqKdf78LG9ZW1Dby6upxLjx7VagNkEWkuVkXVoABHRHxtPpGdc2Odc2OBV4EZsff+Msk5d5ZzbkHXFDW31YWj7Y6DE3PSYYNxDl5c2aRJE88v30F9OMp5M4dnoogi3Vasiqo+rCoqEfEk9UR2zp3qnGu5TkUIR6KEo67dkYxjZozsy/C+xfxt2fYm6//8zmZG9u/FrDZGORaR5hqrqDRdg4j4kh4xwswOAy4CRgGF8ducc59JV4HMbCLwLvCYc+6ydB03k+r8Sf6SzeCYGWdPG8ZDCz5gX00DfXsVsGzLPt5YW8FNZ09S9ZRIB6mKSkQSJfVENrP/AJYC5wKfASYB5wAX4E3AmU6/AP6d5mNmVGOAk2QGB+DCI0dQH47yu/nv45zjpy+uoU9RiMuOHZ2pYop0WwXqRSUiCZLN4NwKfNs59wMz2w9cDmwFHgT+la7CmNklwF5gPjAhXcfNtNoGr+11so2MAaaN6MvZU4fy85fXsmr7fv6xYgc3nT2JsuL2R0MWkaYKlcERkQTJPpEnAX/yXzcAvZ1ztXiBz5fSURAzK/OP95V2PnelmS00s4Xl5eXpOHXKYhmcZLqJx/veBdOYPqIvf1++nUuPGcVVJ43PRPFEuj1VUYlIomQzOPuBYv/1NrzsyjJ///5pKst3gPucc5vaaoPinJsHzAOYM2dOTuSj68Idz+CAN7jeY587jnAk2vgHWkQ6rkC9qEQkQbIBzgLgBGAF8FfgTjObgdcGJ+UqKjObCZwOzEr1WNlQ19CxRsaJFNyIpCYU8P4PRaIKcETEk2yAcz1Q6r/+FtAHmAus9rel6hRgDLDRz96UAkEzm+KcOzINx8+og21wevyUXCJZEQx4GZyIU4AjIp6kAhzn3Pq41weAz6W5HPOAh+Pe34AX8KT7PBlxsA2OMjEi2RCKBTgaB0dEfMnOJj4YwDlX7r8/ArgYWO6c+2OqhfCDpgNx56sCamPny3Wd6SYuIukTy+CE1U1cRHzJVlE9gtcl/H4zGwS8htdN/FozG+6cuzOdhXLOfSudx8u0znQTF5H0CQVjGRwFOCLiSfaJPB140399EbDWOTcV+CRwVSYKlk86201cRNKjMYOjAEdEfMkGOL2AKv/16cDT/uu3gUPTXah809lu4iKSHupFJSKJkn0irwEuNLNDgTOB5/31Q/BGHu7RahvUBkckm5TBEZFEyQY43wZuA94H3nTOLfDXnwW8k4Fy5ZXGDI56UYlkRVC9qEQkQbLdxJ8ws1HAcGBJ3KYXgMczUbB80jjQn6qoRLIipAyOiCRIthcVzrkdwI6EdQta+XiPUheOUhgK0NYUEyKSObEMTlQBjoj4lHJIg9qGiLI3IlkUNGVwRKQpPZXToC4cVRdxkSwKBIyAqReViBykACcN6sLK4IhkWygQUAZHRBrpqZwGsTY4IpI9wYApgyMijZJ+KpvZEDO7wczu9adrwMyON7OxmStefmgIRykMKsARyaZQwDQXlYg0SuqpbGazgfeATwCfBcr8TWcA38tM0fJHQyRKgQIckawKBk3j4IhIo2Sfyj8CfuqcmwXUxa1/Djg+7aXKM+Goa5zsT0SyIxQwtcERkUbJBjizgd+2sH4b3nQNPVp9WBkckWwLmNrgiMhByT6Va4D+LayfDOxMX3HyUzjqKFAGRySrlMERkXjJBjhPAd80syL/vTOzMXjzU/X4qRrUBkck+4JB00jGItIo2afyDcAAoBzoDfwTWIs3k/jXM1O0/NEQcQpwRLJM4+CISLxkJ9usBE4ws9OAI/ECo7edcy9ksnD5wsvgqIpKJJs0Do6IxGs1wDGzCDDMObfTzO4HrnPOvQS81GWlyxNhVVGJZJ3XBkfdxEXE09ZTuQYo9V9/CijOfHHyU0PEEQoowBHJJmVwRCReW1VU84EnzWwRYMDPzKympQ865z6TakH8Bsz3AKfjtfdZC3zVOfe3VI+dafWRKIUhVVGJZJN6UYlIvLYCnMvxGhdPABwwkKaD/GWiLJuAk4GNwDnAI2Z2hHPu/QyeN2XhSFQZHJEsUwZHROK1GuA453YANwKY2Qbg4865ikwVxDlXDXwrbtUz/nlnA+9n6rzpoF5UItkXCgQ0F5WINEq2F1WXT6hpZkOAw4DlXX3ujlIvKpHsCwRQBkdEGrXVi+p64B7nXK3/ulXOuR+ns1BmVgD8Hvitc25VwrYrgSsBRo0alc7TdpoG+hPJvlAgwIFwONvFEJEc0VYG51q8+adq/detcUDaAhwzCwAPAvXANc1O5tw8YB7AnDlzsv51LRJ1RB2abFMky4IBQzVUIhLTVhucsS29ziQzM+A+vAk8z3HONXTFeVPREPHG3VAGRyS7QgEjonFwRMSX0lPZzEab2SPpKgxwL3A4cK5zrsUu6bkm1i1VbXBEsisYMDUyFpFGqaYd+gFz01EQMxsNXAXMBLabWZW/fCIdx8+UhrAyOCK5IBRUN3EROSipXlRdwTn3Ad6AgnlFVVQiuSEYCCjAEZFGeiqnqEFVVCI5QSMZi0g8BTgpUhWVSG7QSMYiEq/NKioze7qd/cvSWJa8FJu9OKQARySrNJu4iMRrrw1Oe1MzVAAb0lSWvFQf9r4xFqqKSiSrAsrgiEicNgMc59ynu6og+aoxg6PJNkWySm1wRCSensopauxFFdKlFMkmtcERkXh6KqeowR9YrCCgKiqRbAopwBGROApwUqQMjkhuCAYCqqISkUZ6KqcoFuCElMERySplcEQkngKcFDVWUambuEhWxdrgOKcgR0QU4KRMUzWI5IZYFlVZHBEBBTgpC0c0VYNILgj6/wfVDkdEQAFOyuqVwRHJCcrgiEg8PZVTFFYbHJGcEDBlcETkID2VU3SwDY6qqESySRkcEYmnACdFjd3ElcERyaqg/39QAY6IgAKclMW6iRcqwBHJKmVwRCSensopOpjBURWVSDYFA7E2ONEsl0REcoECnBSFNZKxSE5QBkdE4inASVF9xFEQNMwU4Ihk08EMjgIcEVGAk7JwJKou4iI5IBRQI2MROSinnsxmNsDM/mxm1Wb2gZldmu0ytachElX1lEgOaMzgRBTgiAiEsl2ABL8A6oEhwEzgr2a2xDm3PLvFal1D1FEYyqk4UaRHUhscEYmXM09mMysB5gLfcM5VOef+CTwNXJ7dkrWtIRxtTI2LSPYcnItKvahEBMy53Pi2Y2azgPnOuV5x624ATnbOnRu37krgSv/tNGBZlxZUBgG7sl2IHkbXvOvpmnc9XfOul6/XfLRzbnB7H8qlKqpSYF/Cun1An/gVzrl5wDwAM1vonJvTNcUT0DXPBl3zrqdr3vV0zbted7/muVS3UgWUJawrA/ZnoSwiIiKSx3IpwFkNhMxsYty6GUDONjAWERGR3JQzAY5zrhp4ArjVzErM7Hjgv4AH29htXpcUTuLpmnc9XfOup2ve9XTNu163vuY508gYvHFwgPuBM4AK4Bbn3B+yWyoRERHJNzkV4IiIiIikQ85UUYmIiIikiwIcERER6XbyMsDJxzmrss3MiszsPv967Tezd8zsI3HbP2xmq8zsgJm9bGajE/a938wqzWy7mV2fcOxO79tTmNlEM6s1s4fi1l3q/z6qzexJvw1abFub93gq+/YEZnaJma30r8E6MzvRX6/7PAPMbIyZPWtme/yf/24zC/nbZprZIv+6LTKzmXH7mZndZmYV/nK7mVnc9k7v252Y2TVmttDM6szsgYRtWbmn29o3Zzjn8m4B/gj8CW9wwBPwBgScmu1y5fIClADfAsbgBbb/iTfG0Bi80Sz3AR8FioE7gDfj9v0B8DrQHzgc2A6c7W/r9L49aQGe96/DQ/77qf71P8m/j/8APBz3+Vbv8VT27QkLXieFD4Bj/Xt9hL/oPs/cNX8WeMC/NkOBd4EvAoX+7+LLQJG/7gOg0N/vKuA9YKT/O1oBXO1v6/S+3W0BLgTOB+4FHohbn5V7ur19c2XJegE68YsuwZuQ87C4dQ8CP8x22fJtAZbizf91Jd40GfHXuAaY7L/fApwZt/07+A/UVPbtKQtwCfAIXoAZC3C+D/wh7jPj/fu6T3v3eCr79oQFmA98toX1us8zd81XAufEvb8D+BVwpn9tLG7bxrgH5Xzgyrhtn409KFPZt7suwHdpGuBk5Z5ub99cWfKxiuowIOKcWx23bgnet1pJkpkNwbuWy/Gu3ZLYNueNSbQOmGpm/YHh8dtper1T2bfbM7My4FbgKwmbEq/bOvzAhPbv8VT27dbMLAjMAQab2Voz2+xXl/RC93km/RS4xMx6m9kI4CPA3/GuwVLnPwV9S2nlutL8mnd2354iW/d0q/um5adKk3wMcJKas0paZ2YFwO+B3zrnVtH2NS2Ne5+4jRT37Qm+A9znnNuUsL6969bWPZ7Kvt3dEKAAuAg4EZgJzAK+ju7zTHoV7+FWCWwGFgJP0vF7eR9Q6relSWXfniJb93Re/J3JxwBHc1alwMwCeFUW9cA1/uq2rmlV3PvEbanu2635DSJPB+5qYXN7162tezyVfbu7Gv/fnzvntjnndgE/Bs5B93lG+H9TnsMbib4Er31Gf+A2On4vlwFVftYmlX17imzd03nxdyYfAxzNWdVJ/jeb+/C+5c51zjX4m5bjXcPY50rw2nUsd87tAbbFb6fp9U5l3+7uFLxG3BvNbDtwAzDXzN6m+XUbh9eQcjXt3+Op7Nut+ffcZqClh5zu88wYABwK3O2cq3POVQC/wQsqlwPTE7Iq02nlutL8mnd2354iW/d0q/um5adKl2w3AurMAjyM11OkBDieHtZLJIXr9kvgTaA0Yf1g/xrOxWsRfxtNW9P/EC8F3R+YjHfjn53qvt19AXrj9SiJLT8CHvOvWSydf6J/Hz9E055Qrd7jqezbExa8Nk//Bg7x77vX8aoKdZ9n7pqvB24BQkA/4M941eCxnlDX4QXh19C0J9TVeA2UR+C1+VhO815UHd63uy3+dS3G69n0oP86lK17ur19c2XJegE6+csegFe/W43Xqv7SbJcp1xdgNN632lq89GJs+YS//XRgFV6K/xVgTNy+RXhzhFUCO4DrE47d6X170kJcLyr//aX+/VsNPAUMiNvW5j2eyr7dfcFrg3MPsBeva+vPgGJ/m+7zzFzzmf412QPsAh4FDvG3zQIW+dftbWBW3H4G3A7s9pfbadprqtP7dqfF/9vhEpZvZfOebmvfXFk0F5WIiIh0O/nYBkdERESkTQpwREREpNtRgCMiIiLdjgIcERER6XYU4IiIiEi3owBHREREuh0FOCIiKTKzMWbmzGxOtssiIh4FOCI9iJkNMbO7zGyNmdWa2U4zm29m15pZadzn3vcf2M7/3CYz+7OZndvCMV3cst/MFprZhV37k2XdJmAYsBjAzE7xr8eg7BZLpOdSgCPSQ5jZGLzRYM8GvgEcCZyGN4XEh4HzEna5Fe+hfRhwCfA+8Gcz+3kLh/8f/7NHAUuAR83sQ+n+GdpiZoVdeb54zrmIc267cy6crTKISFMKcER6jnuBKDDHOfewc26Fc26Zc+4J59z5ePNXxdvvP7Q3OufecM59Gfg8cI2ZnZrw2b3+Z1fhzRFUS/OACWhSnXOpmf3TzxCtMrMzEz43xcz+6meFdprZH81saNz2B8zsGTO72cw2402y2SIzO9bMXjKzajPbZ2Yvmtlwf9vZZva6me0xs91m9pyZHd6R8sZXUfmB5Mv+pnJ//QPJnEtE0kcBjkgPYGYDgLOAXzjnqlv6jEtu3pb78OYbmtvaB5w3S30Yb06ottyON0/UTOAfwFNmNsIv7zDgNWAZcDTevDelwNNmFv9362S8GabPxstCNWNmM/ACjrV4k48eCzyCN1kheJOS/sQ/zyl4kwj+pYWMUKvlTbCJg9dnKl5m67oOnktEUhRq/yMi0g1MxJuc8L34lX7mo5//9iHn3NVtHcQ5FzGz1cC4lrabWRFwI1AGvNhOme51zj3i73cdXgD2OeDr/r9LnHM3xx37k3iTKs4B3vJX1wKfcc7VtXGem/xjXRm3bmXcz/R4ws/wabwJBo8G/plkeRv512i3/3anc25XJ84lIilSBkekZzsRLyPxFlCc5D6GN5txvAfNrAo4AFwP3OCc+1s7x/lX7IVzLgosAKb4q2YDJ5lZVWzBy4wAjI87xrJ2ghvwZqRuNdgys/Fm9gczW2dmsZmTA8CoDpQ3KR04l4ikSBkckZ5hLV5QMjl+pXNuA4CZHUjmIGYWxGt0/FbCphuBvwOVzrmdKZfWe+j/FbihhW074l63WN2WwNrZ/hdgC3CV/28YWAFkotqoK88l0qMpgyPSAzjnKoDn8RoIl7b3+TZcgVel9VjC+u3OubUdDG6Ojb0wM8OrpolVHb2N137lA/+48cv+Dpb5bbzeYs2Y2UDgcOD7zrkXnHMrgT60/OWvrfImqvf/DXbyXCKSIgU4Ij3H5/H+zy8ys4/7vZQOM7OPAzOASMLn+5jZUDM71MyOM7O7gF8AdzvnXk1DeT5nZheZ2SS8hrej8Xp64Z+nL/AnMzvGzMaZ2elmNs/M+nTwPHcAs/x9Z5jZJDO7wsxG4TWY3gX8j5lNMLOTgV/iZVY6Ut5EH+BlzP7DzAb7QWVHziUiKVKAI9JDOOfW47VH+TvwHeAdvOzG9cA9wJcSdvlfYBte9dYjwFjgQufctWkq0i3+uZfg9YK6wDm32S/rVrweT1G/vMvxgp46f0mac24xXi+sycCbeG1nLgEa/LY0F+P1xFrmn+MbrZyj1fK2cM4twDeB7+FVqd3dwXOJSIosuZ6hIiLp4Y8TswE4yjm3MLulaV++lVdEPMrgiIiISLejAEdERES6HVVRiYiISLejDI6IiIh0OwpwREREpNtRgCMiIiLdjgIcERER6XYU4IiIiEi38/8BA0ASja4U+wkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f2291531c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "full_country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n",
    "plt.axis([0, 110000, 0, 10])\n",
    "\n",
    "from sklearn import preprocessing\n",
    "from sklearn import pipeline\n",
    "\n",
    "poly = preprocessing.PolynomialFeatures(degree=60, include_bias=False) # 多项式特征\n",
    "scaler = preprocessing.StandardScaler() # 标准化\n",
    "lin_reg2 = linear_model.LinearRegression() # 线性回归\n",
    "\n",
    "pipeline_reg = pipeline.Pipeline([('poly', poly), ('scal', scaler), ('lin', lin_reg2)]) # 执行上面定义的一系列操作\n",
    "pipeline_reg.fit(Xfull, yfull) # 训练\n",
    "curve = pipeline_reg.predict(X[:, np.newaxis]) # 预测 X是一维，即一行数据，我们要把他变为一列，这样才能进行预测。使用np.newaxis可以通过加入新轴来改变数组的维度，这里是把X从一维变称二维。\n",
    "plt.plot(X, curve) # 绘制模型预测 从图中可以看出模型过度拟合\n",
    "save_fig('overfitting_model_plot')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Country\n",
       "New Zealand    7.3\n",
       "Sweden         7.2\n",
       "Norway         7.4\n",
       "Switzerland    7.5\n",
       "Name: Life satisfaction, dtype: float64"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "full_country_stats.loc[[c for c in full_country_stats.index if \"W\" in c.upper()]][\"Life satisfaction\"] # 所有名字带W的国家的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Subject Descriptor</th>\n",
       "      <th>Units</th>\n",
       "      <th>Scale</th>\n",
       "      <th>Country/Series-specific Notes</th>\n",
       "      <th>GDP per capita</th>\n",
       "      <th>Estimates Start After</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Country</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Botswana</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>6040.957</td>\n",
       "      <td>2008.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Kuwait</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>29363.027</td>\n",
       "      <td>2014.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Malawi</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>354.275</td>\n",
       "      <td>2011.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>New Zealand</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>37044.891</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Norway</th>\n",
       "      <td>Gross domestic product per capita, current prices</td>\n",
       "      <td>U.S. dollars</td>\n",
       "      <td>Units</td>\n",
       "      <td>See notes for:  Gross domestic product, curren...</td>\n",
       "      <td>74822.106</td>\n",
       "      <td>2015.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                            Subject Descriptor         Units  \\\n",
       "Country                                                                        \n",
       "Botswana     Gross domestic product per capita, current prices  U.S. dollars   \n",
       "Kuwait       Gross domestic product per capita, current prices  U.S. dollars   \n",
       "Malawi       Gross domestic product per capita, current prices  U.S. dollars   \n",
       "New Zealand  Gross domestic product per capita, current prices  U.S. dollars   \n",
       "Norway       Gross domestic product per capita, current prices  U.S. dollars   \n",
       "\n",
       "             Scale                      Country/Series-specific Notes  \\\n",
       "Country                                                                 \n",
       "Botswana     Units  See notes for:  Gross domestic product, curren...   \n",
       "Kuwait       Units  See notes for:  Gross domestic product, curren...   \n",
       "Malawi       Units  See notes for:  Gross domestic product, curren...   \n",
       "New Zealand  Units  See notes for:  Gross domestic product, curren...   \n",
       "Norway       Units  See notes for:  Gross domestic product, curren...   \n",
       "\n",
       "             GDP per capita  Estimates Start After  \n",
       "Country                                             \n",
       "Botswana           6040.957                 2008.0  \n",
       "Kuwait            29363.027                 2014.0  \n",
       "Malawi              354.275                 2011.0  \n",
       "New Zealand       37044.891                 2015.0  \n",
       "Norway            74822.106                 2015.0  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gdp_per_capita.loc[[c for c in gdp_per_capita.index if \"W\" in c.upper()]].head() # 名字带W的国家的人均GDP数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure ridge_model_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADQCAYAAAAK/RswAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXl4lOXVh+8nIRDCEiCsCUIARbaEEMIqsgmiUrCgfIgbaBWRIrVU6wriQluRWqtVFBWiFgVlcW/rBkUqyKJsooBKWBKEECAkJCHb8/1xZjKTZCaZJJMNzn1dc2Wedz3vOwPvb845zznGWouiKIqiKMq5REB1G6AoiqIoiuJvVOAoiqIoinLOoQJHURRFUZRzDhU4iqIoiqKcc6jAURRFURTlnEMFjqIoiqIo5xwqcBRFURRFOeeoUoFjjJlhjNlijDlrjIkvsu4yY8wPxpgMY8waY0z7qrRNURRFUZRzh6r24CQBTwCL3RcaY5oDq4DZQDNgC7C8im1TFEVRFOUcoU5VnsxauwrAGBMHtHVbNR74zlr7jmP9XOC4MaaLtfaHqrRRURRFUZTaT5UKnBLoDmx3Dqy1Z4wxPzmWFxI4xpipwFSABg0a9O7SpUtV2qkoiqIo5zWZmfK3fn35+/33EBoK4eEy/vZbaNkSIiJknJwMjRpBcLB/zr9169bj1toWpW1XUwROQyC5yLJUoFHRDa21i4BFAHFxcXbLli2Vb52iKIqinEdkZ0PduvL+qacgMBBmzZJx587Qsye8846Mp0+HPn3glltknJYmgqayMMYc8GW7miJw0oHGRZY1BtKqwRZFURRFOW/45hs4cADGjZPxhAlw+DBs2CDj9euhXj3X9q+8Ai3c/CcvvFD4eJUpbspCTRE43wGTnQNjTAOgk2O5oiiKoijlJD9fBEu7djJ+9VX44AN4910Zv/ACvP++S+CMHQunTrn2f/ddMMY1Hjy4auyuKFU9TbyOMSYYCAQCjTHBxpg6wGqghzHmGsf6OcAOTTBWFEVRlLKxcyc89hjk5Mj4iScgMtKVO5OVJQLGuX7OHPHiOLnpJrjrLtfYXdzUJqp6mvjDQCZwP3Cj4/3D1tpk4BpgHnAS6AdcV8W2KYqiKEqNJzMTNm2SXBeATz+VvJj9+2X87bcwd66EnUA8MosWgbUy/u1vYe1aCAqScbt20NZ9XvM5QpUKHGvtXGutKfKa61j3mbW2i7W2vrV2qLU2oSptUxRFUZSagrWQlyfvDx2CmTNhxw4Zb9gA/frB11/LuHlziI6G3FwZX3stpKfDhRfKOCYGbrsNQkKq9hqqG23VoCiKoijVSHY2fPwx/OBIyjh0CMLC4I03ZJyfD0uWwL59Mu7dG1avhl69ZNyrF6xYARddJOOQkPNPzHhCBY6iKIqiVDLZ2XDypLzPz4cbb4TFjpr+1sKYMfDmmzJu0wYmTnR5YNq1g9On4ZprZBwaCr/+tYggxTs1ZRaVoiiKopwzrFgBdeqIEAHo1AlGjhRRExAACQlw/Lisq1cPNm50CZo6dWDhQtexamuSb3WjAkdRFEVRysjx4/DLL9Cjh4xnzpSZSa+/LuO//U0K5TkFzty5cMEFrv3Xry98vD59Kt3k8w4VOIqiKIriAWtd3pMPPpCZS48/LuPp02Vq9Y8/yrhZM/G8OFm1SpY5+c1vqsZmxYXm4CiKoijnPYmJIkqcU6n/+lfpp+ScyfTVVxJeys+X8axZhcNIc+fC00+7xq1auaZhK9WDChxFURTlvCA93VXc7n//k8q9KSkyfvddSeJNSpJx9+6SCJyVJePHHxcRFOB4avbvLzk1Ss1FBY6iKIpyzpGcDC+9JFOuAf79b+mR5KzYm5Eh07KPHZPxNdfAli2uHktXXCF5NA0ayLiOJnTUOvQjUxRFUWod+fkiXkJCRJQcOgTXXw8PPABXXQVHj8K0afDWW3DddRAVJS0LWreW/UeOhO+/dx2vdWvXOqVmkJsrn2Niouvl9LD5ggocRVEUpcaTkwPz50NcHIwaBamp0l9p/ny4915o2lS2c+bQXHyxTMV2zlyKiICHHqoOy5WiWCttJtyFS1ERk5gos9ScOU9OyuJJU4GjKIqi1Ai2bZOHn7NCb9++0rl6wQJ5sD39NNx+uwicpk2lum///rJtw4bw5ZeuYwUFQfv2VX8N5zs5OSJM3IWKp9eZM8X3bdpUhGhEhHjcwsNdY+erRQsIDPTNFhU4iqIoSpWRkeFqIzB/vlT4ffhhGd98s4iSDz6Q8eDBrjozxsiDMTjYdawpU6rM7PMea8Vr5s3b4nwdPeryojkJCnKJlZ49JYQYEVFYwISH+7+9hAocRVEUpVLYvFnqxEyaJOOJE2HvXul2DbB9uwgcJy+/XLj9wIIFhY/nLm4U/5Gd7fK6lBQyysgovm9YmEuoxMQU97iEh0sz0IBqmNKkAkdRFEUpFzk5kufibPK4eLH0U/rsMxm/9po0jLzuOvHAXHutzG5ysnRp4eP161clZp83WCv9r7x5W5yv5OTiXpe6dV0iJTYWfvUrz+KlJotOFTiKoiiKT+zYAW+/Lcm69etLMbwHHpDQRePGsk1AgNSOCQ6W7R55xFUNeMKE6rP9XCM7u7hg8TTOzCy+b/PmLpESF1dYsDjfh4XV/h5YKnAURVEUQBI/v/1W8l6aNIEvvoBbb5UaMl26SN2Yv/xFpmN36yYdsMPDXUmft94qLydt2lTPddRmrIUTJ0oPF7l7wpzUq+cSKH36FPe4RETIZ1KvXtVfV3Xgs8AxxkwELgNaUqRAoLV2rJ/tUhRFUSoBa6W+SFCQPCgffxxuu01+yW/fDpdeCh9+CKNHS12YgQNd+159teRh1K0r4+7d5aX4RlaWS6B4CxclJcHZs8X3bdlSBErbtjK7zJN4adq09ntd/IlPAscY8xRwN7AGSAJsyXsoiqIo1U1ODnz0EXToILNXjh6FCy+U5N077hDPy9tvw/DhInB69oSPP3blwnTrJjk1Ts6XX/5lxVrpLl7aDCNnWwh36td3CZQBAzyHi9q0cYlKxXd89eDcDEyy1q6oTGMURVGUspGRIT2WWraUB+2kSeKF+e1v5df8ddfBzJkiXlq2lDoyzqnXrVrJQ9f5q79BA7jyyuq7lppIZmbJ3hbnX/fZYCD3tFUrESrt24snzFOSbpMm6nUBpKvpiRPyhUxJEcU4YIB8abdskc6mznU+4qvACQC2lctoRVEUxW8sXy5C5rrrZNyjhxS7e/NNeVCmporgASmOt3mzVPwFWe/e8fp8frDm50seS2kF6U6eLL5vgwYukTJokOeCdK1bn8fdxLOzRYiEhEBoqNzoVatcwsUpVO65B4YOlWSvESOKT+VyxkqPHZNEsLCwwnUESsFXgbMIuBGY6/ORy4gxJhJ4ARgAnAVWAHdba3Mr65yKoig1DWc9kt69ZTxzJhw+LM8HkAaSubkugfPEE+IpcPKvfxU+XlRU5dtc08jIKDlUlJgIR464Oos7CQiQexkRAZ06SaHBouGiiAiZMXZeicPcXNi5s7A4OX5cXIXDh8sNHjvWtS4tTfZ79lm46y5XYzAQdegUKs7COhdeCHPmuJY3by5/O3eW9VddJR+aEx9vvq8CpwlwvTFmJLADKPS1sNbO9PE4JfECcAxo4zjfp8B04Fk/HFtRFKXGkJfnmnn0/vvw3//KlGuA++6Dzz8XUQOSVOruCVi5Un4UO7n++qqxuSaQny8/5ksKFyUmwqlTxfdt2NAlUIYM8Rwuat36HO4abi2cPl1YoDRvLtOtrJWYplPAOP/edBP8+c+S9RwbW/yYjzwiAqdBA1GG3boVFiiXXirbXXyxfKHDwjwXzmnXDubO9fslG1vUJeRpI2PWlLDaWmuHV9gQY74H/mCt/dgxfgpobK29w9s+cXFxdsuWLRU9taIoSqVx6BCsXw//938iav72N5g9W0IfQUHw2GNSwffnn2X8zTfyHBo6tLotr1rS00sPF/3yizgT3AkIkCRcT54W91ejRtVzXZVCXp58gc6elYsDWLFCqi66e1m6dRMXH4hSdveCgJSWXrZM3nfqJF9ApzgJC5OmXxMnigB67z3X8rAwaNas2mJwxpit1tq4UrfzReBUBcaYacBAYBrQFPgPMNtau9rbPipwFEWpCZw4IT9i69WDr76CefNEtISHwyuvSGLvTz9Bx46wdq2EkR5+WB66+fnVU8a+qsjLkwhFaSGj06eL79u4sWdPi/u4VSvfmy/WaPbvh4MHC3tY6taFP/xB1t9+u7j6UlJE3Fgr3pdNm2R9r17SrTQoyCVChg+XMBGIss7PL+xhadvW1W69FuGrwCmTM84YEwxciEwT/8lam1VO+zzxX+B24DQQCLwGvOvBhqnAVIB27dr58fSKoiilk5wMb70luY+dOkk4acQIefYMHiwPdOeU4PBwqR3Tr5/rOTJ0aGHvTG0WN2lppRek++UXuSfuBAa6vC5du8r98yRiGjasnusqNxkZhQXKqVPSnwLg9dfhk08Kh4CMEeULImRWF/k9f+GFLoHTqpWEidwFijN7HEQ1h4SIavaUo/L73/v9cms6voaogoA/ATOAuoBBEoGfAx6y1uaUsLsvxw8AEoCXgAVAQ2AxsMda+0dv+6kHR1EUf5OfL8+cBg3kQZuUBL/+Ndx/P4wfD/v2Se5jfDxMniyC57XXpA1B+/bVbb1/yM0VYVJSuCgx0TVby50mTbx7W5yvFi1quNfFWlFvKSmuJKht22DduuKJtu+9J1+W+++HJ58sfqyzZ8UTc9998M47hUNALVu6prVt3ixuLPcwkL/ba58j+NuD8yQwCQkfrXcsuxT4MzKF/J7yGOlGM+AC4B/W2rPAWWPMEuAJwKvAURRFKS/Wyg/d/Hx49FGZtTR2rNQ96dxZKvw+/LA8Z0JDXYXWOnaUGTjOmUstWshs19qAM8+0tHDR0aNyX9ypU8clWKKi4IoriouY8HB51tdITp2C778vLE5SUmD6dBExq1dLcpRzvXOK1Q8/SJLsF1+IN8UYKRns9KRkZMhFX365qDt3D0tYmCtr+cknPQsgJ336VP49OM/wVeBcD9zqTAB28JMxJhl4hQoKHGvtcWPMfuBOY4zTgzMZ2F6R4yqKooDUCcvNlXoxIKXu4+LghRckRPTqqyJsxo6VZ9WyZa5JI/Xqwaefuo4VGCizbWoaOTmuKeYlzTA6c6b4vk2bukRKdLTncFGLFjUgnJaT4yoG5xQosbHiOvvhB5g/v3itlaVLRXysWSMuOHfq1JEpyG3biort3Lm4QGnRQra97TZx2TVp4tn9NHy4vJQag68CJxT4ycPyn5Ap3f5gPPAMcB+Qh7SFOP+ChopyjrF0qXSVPnhQZoPOmwc33OB9eXmwVgrcNXH8b/SXv0iEYd48Gd95p6xzCpUrrxRPjJOEhMLTgydOLJ8dlYG14nwobYbRsWPF66TVresSKD17yrPcU9Ju/frVcGFZWSJA6tUTQdGypecOkqGhcgN27hT1VZRXX5UOn2fOSI6LU5xER8t7p6tt4EDJU3GvteKer1KaQHG2S1dqDb7m4GwEtlprf1tk+UIgxlo7oJLsKxHNwVGUms3SpTB1qqueF0haweTJkrdSdPmiRb6JnK+/hu++c3WunjRJUiS+/17Gt98uz8R33pHxtm0icNxzMmsC2dkS7iotZJSZWXzfsLDSZxg1b17FBem2bi2eo9KrlyQxZWbCJZe4ljs//IcekqnMJRlqrcwceu654sXgOnYsXBhIOefx6zRxY8xg4GOk0eYGZBbVACAcuNJau76E3SsNFThKTcCfnojadG5fiIyEAweKLw8MLD6zBiTSkJAgP+737XNV4V28WMTPhg3yHLznHnj+eUlyDQyUYnlHjkgDyZqA83lcWrjo2LHi+9arV3I9l/BweXmql1Zh8vPFFeYUIVde6blqXlAQdOki240aJR8QyLSnojGw6dPlw7JWhE6TJoVDQH36SJipNIGjKA78XgfHGBMO/Bbogsyi2g28YK1NqoihFUEFjlLdePNQuHsiKkuElHbupUvhd79z9aYLC4O//71qBVBAQNmfTdZKyY5Zs0QAtGgh07LffFNejRpJJCMoyBWSqkrOnhWRUlK4KClJRFpRWrQovSBds2Z+8rrk5orKSk+XduIgSrBoom2bNvDii7I+Jga2+5j6ePXVIlQGDnS50j75xFWKv3lzSe7xdbqUChzFR2pdob/yoAJHqW68eSicnghfBFBlnHvePLjlluK9durWlR/bVSVyvNnojTZtRBzs2ycVfUePrrpaKNbKM7+kUFFiomiCogQHlx4uatNGvDMV4sABKXnsLlDOnpVyyAB//KPMBnLWYAHXlxFk6tN//iOGOEVITIzEC0GqEqaluTwso0eXfMP8iQocxUcqLHCMMbHANmttvuO9V6y135TPzIqhAkepbrx5KJzTj0sTQJV17nbtvAsLf5zbE3l5IqhWrpSSH4mJkpfpqUKtJ+rXl+q/ZRFfvnrHsrI8Cxb3ZUlJohWK0rJlyeGiiAhxVPjkdbHWVQzOPVdl/HhRn6tWyQ10X+ecNVSnjmRLO70tTpo2dRWNe/ppqafiHgJq08ZVbC4lRdRYSIhvBlel6FCBo/iIPwROPtDaWnvM8d4ioamiWGtttZRsUoGjVDelCZjSBFBlnfvgQe/PBH+cOzdXnsUdO8p06xMn5GE/YYIsd/dYlYTT1vKE7pYulWRi9wTcunXF6dCsWWHh4gzTuRMSUnq4qHVrV/2bYjiLyhw/7pqK9MMPMlOnaK2V+Hi5yAUL4N57ix/r0CGZqvz007BwYfFE2nnz5PjffSdxO/d1FXYLlUBVio7WraUAT1FatZL574riwB8Cpz1w0FprHe+9Yq0tgxPaf6jAUaqb0kJQlenBKencDz1UcQ9Oaqqkbzh7+f3f/0k+6L33yrOtcWNJvfj732X88MMyY9fTM6o8dmRmljy76OuvPScqgzwrSwoXRUTIxJtiz++0NNixo7hAuflmaVy4dq10XXaud3Z+XLdOOicvXQo33ijKtlkzlwhZvFhqrGzeLAXjitZaueiiamtcWCLqVVFqIBWuZFxEtFjgkPWghowx2hCqKPpL5LzB6XHwFiaZN8+zCHHWZykrRUMykyfDxx97Pre3HBxv537zTZm2PGWKjPv1k2f6qlUyzs93eX6MkRnBzv5Kxshx//xn36/l1CkpDHvRRZ4FzMmTxfdp0MAlULyJmyCyOfLticJhnq5d5ZWYKDew6FTmv/8dbrpJaq0MGlTkgEGum9GkicwechcnzZvLRQCMGyfurNBQz1Xx+vSpXRVrW7Xy/n+ZotRwfJ0mnge0sdYeK7I8DDimIaoi6K8exY2KzKJy37dZM3EwZGe71peUsLx0qUybds7aNUZm6ToFy8yZsGeP5JyCFIE7dUq6YYOkgjRrBsOG+X6t7dpJtKUodeuKOHI6PIoSECC/C4p5WpqfJaLhKSLaBhAR04JG9XMxi16ClBSWLEihbtpxwkhhJdfwCrfTil/4hTbFT/CnP8EDD4hxgwYVDwFdf73MBkpNhY0bC69r2LCKi8koSjVTw3+k+7sOTj7QylqbXGR5e2C3tbZauo+owFHOZTyFoDzhHurJznbljMyaJXXRioqKf/5TBNE//iHCaf58WZ6eLh4ST1/fvDxJ/ShthlFqqmcbw8PFsZGVBS05SjNSaEEybThCt0aHeOjvralzy02y8YABcPiweFacc61vv12UXH6+eFTy88mu35jDWc05bsOIZwoLmU5o/Wz+e9WT9BxeJATUvr0k4yqKUjo1/BnmF4FjjHnW8fa3wBLA/b/aQKAvkG2tvaQCtpYbFTjKuUxZplhbC88+KyGf1FTx7DRt6rlGW7NmhZNu09NLL0h35EjxkFBgoKV1s2wimmaIpyW2tYSOVq4mYMc2IrJ/pnudPXRrcJD6A2MJ+PfHWAs/0olO/FxwnHwMAf83AZYvlwW33CL/hty9LFFREiYCUVpNm0JQUI0vdKgotZIa/gzzl8BZ43g7BKlg7OYcJxtIABZYa/eV39TyUysFTnldfDXcZaj4H1+jIs7aMRs2yASeWbMkVaSk/bt3F8GSlGQ5fbr4hqHBWUQ0OEV43RQiAn8homEqEXeNl7DRn35LxKZVtOQYgTiScrp2hd275f348bB3b+EwT3Q0kQtmcOAADOJL8gjkOM1JIYzQdk34+UC1RLkVRfHEOSJwSmy2aa0d5jjYEuB31lofK1ooXvF1iomv+5X3eEqN4/hxqbc2erTksXrL73QnKAjGjJHkXqe35fKh2SQethjqYj1UdmhMKnW/+4mOdQ5xeW4C4SQREXSMiH8vJqKtIXzuVBq+9TIQDPUdAiUyEqY7OjGfHQJHOhcOAbVs6TqBM8mnCPOaSshtfcalBctCQuDZP5XxRimKoviArzk4bYBAa+3hIsvbAjnW2mp5ytZYD443b4uT8ijgGq6oldLJzxcnR+PGEk5JTobLL5e+SjfcIPmv7drBU/Mtl/bO4M1XzvDPZXUIsenUIZdDtCOPOtQhl1wPv02ahOZLMm7Wj0T8tI4IEokgkXCSCOUUY/iANEKZTDwj+IwbZxZJtJ0wQbJ9U1NFOYWE+P0eaEhJUWoBNfx54+8k40+Bt621LxdZ/htgorX28nJbWgFqrMAB/39B/HW8WhDqqu0Pwbw8ab9jLTz0oCXmojNMGHSE5MBWtL6oMWHB6fTOXE+duoF8a3rRNuQEeTmWpOCOHD0RVKwIXxDZhJNEalBzOvdqyICm3xOx9X0imjhyX9rkE942gJA594hY+eknUUvNm9N9cBg/nmxGNoWLwVVWNWNFUc4Bavhzwt8C5xTQz1q7p8jyzsBGa22zcltaAVTglON4NVyZV2bvJr+RmQlbtkBKChu+DiDj+BkuCtxPYuwYbpofRVj9MwxNeovEM6GsOjuaYLI4Sz0yKD7ZsCknaFMnmXaNThJxaUfCe7aUnJeE/xHRvg4RHevRvEMjAlo2lzBRGavW1or7qSiKUgb8LXDSgYHW2h1FlkcDG3SauAdU4JSLyqz8W4isLFehN2ext44doXdvKb8/Ywb2eAonjuaw60gzsk7nkHjV7bx18gqOHjpL5J7/kEgEO4kihyCKdjGpG5BDeINUIkLPiJelVS6rNrTmwOlm1CGbYLJIpyEQUOnelNruEVMURXHH3wLnc2CvtfbOIstfAi621g4tr6EVoUYLHH+7+Px1vBoucMrcu8nZvPD4cVeXSYCXXpL74l5uf9gwuP9+yMsju04IR2jtyFJxvGLHsj1sOPt/yoeDB0jMa0OmDS52yrp1LV3aphPRJp8GjetwQae6dI2qQ0RbU1CgLiys+K2uzL5UiqIo5wt+mUXlxkPAF8aYnsDnjmXDgV7AiPKZeI7j7zhlDYh7VjrW0q6d4cABiGIHbTlMc6RSbcdGKfBsSym/C1J2d/t2ES7OFtBjx2LffY8TJyDxoeUkpdQlMaQzicH9SKzTjsQDURx6Cw4dCuQkxdtG1/vOUr8+pKYGMGFCB8a2lRoxIFX8nT2N6tUzQKMyX563Dt/ttNmJoiiK3/FJ4FhrNxpjBgD3AuMRf/w3wHRr7fZKtE+preTlSela9xBQTg5ce62s/+tfYf36wh6WiAjmzfuGqVNhYcadXMJXBYfLTwvg7LuXkzRmpkyHDphEYtvJJIW3JjGnJYkZTUncEkpSiLP47ReyY4a8mjeHtvUhP1d6HP3hD1K6JSFB6scsWgQdOpiCCUQNKiHo6u++VIqiKIp3fPXg4BAyN1aiLUolUDT/4vvQVtRPLWPzvOxsl1Dp3l1iKv/9L/zvf4UFypkzsMZRG3LyZDm5O82auQTO3r3w448QFobt2o2Uhu1IbNKDpk1h0iS4Zdk7nDpTh9x6DWjcoh5nsgI5vsZAR+fBpKx/cLAUtW3fHvrFSQjo/ffhwQclIrVvH0yfLgXw4uJE0Hz7LYwcKS2GitKkSVnubtkorTGnoiiK4j98ysEptIMxrYG67sustQf9aZSv1OgcnBpA8Rk0lpD6sOhlww3Dj8B33xXvqvzYY/KUX7hQmhSlpEiHRyenTkmn5D/+EZ56Slwd7iX1//UvmSP9r3/Bjz+S1agFiTacxNxWJGU1IzG7hceWAO4NJEE0VMuWEhZq00b0V2QkNGoE770nouCaa2T/qChXf6VDh+CJJySS5azWa4znxs6KoihK7cPfScahwLPA/1FE3AD4s5u4MeY64BGgHfALMMVa+6WnbWu6wKnU2SvWymwfd3GSkgKXXSaK4Kuv+HDkM9TPSCnIYwkjhQFs4FT7GBLufxHuvLPwMUNDZfrzhReKilixonAhuLAwGDsWgoPJTzvD8ZOBJKYEe+1flJgoUaqihIQU6Rgd4cpvadMGNm2C2FgYMkRyYJo2FdFy330i1rp1c93LnBxp/tyzpxTQq9LPQFEURaly/J1kvADoCfwaWAXcCkQAvwP+UF4ji2KMGQk8CUwENgFt/HXsqqao9+TAARmDhwdsfr4khqSkuITEL7+IW8JdvKSkwJw5ImI++QSuuKL4iT/6SFRCWhoXZuwghTASiGQrvUkhjJM05dBBpL5/t24u8dKsmSSfIGVeErtfTWKTq11iZY/j7zMiYpKSGpCTU/jUxshkr/Bw6NABBg3yLGKysyWa1aGD7DdhgogeZ/7w1VeLd2bIEAkjPfooXOqo7h8SUnhKdVCQa12FPgO3fVQQKYqi1H589eAcBiZZa780xpwGYq21PxpjJgG3WmtH+sUYY74CXrXWvurL9jXSg2MtGMOF7XMIP7ihkPekOcfZ0XIkrx8dJbGUESNEtJw86Zon/NxzMGMG7NolsZegoMIhoIcflv0OH5buy2FFyu1fcAHUrw94rynTurUk1XrqIJ2Y6LkDdcOGhUWKJw9M69ZQx4NkfuMNiXJNny7jnj2hbVvRYgBTpkjvpfvvl/GBA3IOh94qN2WtqaNF8RRFUWo+lVHor5u19qAx5hBwrbX2a2NMJPCdPwr9GWMCgUxgDnAbEAy8C9xrrc10224qMBWgXbt2vQ94eoL5i8zM4iGgNm3EZWAt3HyzLHf3sNx+OyxYQENVB1qPAAAgAElEQVRzxlHIzUUG9XmcOfzZ3i/9fu64o3gIqF8/CRHl5rJ8SQb3PdGIg4dMqd6EM2eKC5UvvoDPP5c8FG8EBIgw8eRpcR97Cv84SUiAn3+G4cNl/LvfwebN8JVjEtT48XDkiMxWAvj4YxFMgwf79jG4UxYPS1nrzlRZkUFFURSl3Phb4GxHuomvNcZ8AnwHzAJ+D/zeWnuBHwwOBxKBrcAYIAd4D1hrrX3I0z4+e3CsFRdCSgrk5sJFF8ny+HjYv7+wQOnZExYskPUtW0pHRHcmToRly+R9dLSUzncXKMOHw9VXE9necuHBzzlOc4f/JoxMQnx+WHryJtStKzOMIiKK57ykphY/RuPGIiROnJCp040bw7hx8Otfu0RMq1aevS5Fychw9V50pue8/rqIhZkzYckSSQkyBl55RSZI/eUvsn1Wlsx2qihl9bCUVbBoIT5FUZSaj79zcOKBaGAt8BfgQ2AGEIDk4fgDp5fmOWvtEQBjzNPAw0ihQQ97ZMKHHxb2soSESBgH4PrrZdpySgoFCSN9+8LXX8v7Z56BHTski9XpSXGPizz+uDzd3L0srVu71u8o1LmiEPP+ZJg6dUSJNU/S0rwn5370UfGZRdnZ8NprMkmpTRsRKV26iKby5IFpVPZadICIgv/8B268UWx+/nmJmjknUB0+LJ6h9u3lfZs2MqnKEZ3jttsKH88f4gbEc+N+P0HGDz3kWeCUte6MFuJTFEU5d/C10N/f3N5/YYzpAsQB+6y1O/1hiLX2pCPXx/d560lJkizrJDBQvCpOgdOtm0xjdvewtG/v2n7dOlkf6GUS2B13lP1CECfR0KEy6+cf/xAnkDHyoL3tNhEDaWmFZ187CQ0VgVJU3Lhz9qx3k30hP19Sff76VxEorVrJed97Dy6+WMJLd9whdWNiY6F/f9F6Ti9GkybiMXIKh6Qk8dZ07Fi5uSoHvRQj8La8rHVntBCfoijKuYPXEJUxJg9oY609ZoxZjISoPDyS/WiMMY8BVwKjkRDV+0iIaran7eO6d7dblixxeVgaNy6515IfOH3ae3Ku0wvzyy8lhzQCA2Ui1GWXFc95cVbQ9Wc+SEqKtGb61a9E/z36KMydW3ibgABZ/vDDrmheu3ae68dUV65KVZxXZ1EpiqLUbCqcg+NILI621v7sEDutrbXJHjf2E8aYIODvwPVAFvA28EdrbZan7f05iyo3VxJhi4aKigoYZ28id5o29Z6cO3Wq5zZSpT2Uy5Jvkp8P27aJF6ZTJ5mUdckl8PvfS85zcrKkE734onhm2rWTSVxltclJdeWq6CwnRVEUxR85OF8B7xpjtiK9p541xmR62tBae2v5zCx2nBxguuPlF6yVcEpJxegSE6VRd9GHdlCQS7D07Cn9HYuKmPBwV/KtJzw1AAfvYRUnnsIrjz7qWn7//RKBu/lmsXvgQMmTWbBAQkhRUa50oRYtxPPkzMk5fLh8NjmprlwVbXWgKIqi+EpJAucm4B7gQiQvJgw8tGCuRqyVB11J4aLExOKJqSB17ZwiJSbG8xTp5s0rXuK/vGLgyy9FmDg9Kn37SveDyZNl/OmnrrzpwEDpv9S5s4yNkRI57rgnHFdUoFRnrsoNN6igURRFUUrH12ni+4E4a21K5ZvkO8bEWSgcoqpbt/SCdOHh/pvZUxrewioLF8rsp7ZtZdmf/ywz1hctkvHIkeJ52rRJxs8+K6LsRke7U+eMJX/aVJZQj+aqKIqiKNWBX+vgeDlBkCOkVG2Eh8fZRx/dUki8hIVVep5xmVm6FP7wBwlXtW8vYuDzz+Hf/xZPE4hY+PFHl+flxx8lZ7ply8qzSQWKoiiKUtvwd6G/mUCitXalY/wqMBn4CRhrrd1TQXvLRU1q1XD6NOzcKVOqAwOlXs3jj8Pu3eJVevxxadSdlibeo//+V8JEN91U8wSZoiiKotRUfBU4vmaYzASSHQcejHQVvx7YBvy1vEbWNqx1zRLauVOacR85IuOVK6W55P79Mm7VCvr0cdW6uftumYHlDI0NGSIJwjVV3CxdKtOyAwLk79Kl1W2RoiiKoviOrwInAkhwvB8DvGOtfRuYC/T3v1nVT1qaFL5zTqfeuFFCRuvWyfjECenY4EzWvfxyKarsnLl0xRXw1lsSMgNJ8q1Xr2qvobw4c3QOHBBR5+zCrSJHURRFqS34KnBOAy0c70cCnzve5yBNMWslGRmuHk4pKTBhgqvD9bFj0rPpk09kHBkJt9wiM6tAGkWeOCEhKZD8n9GjpfdTbaeklgiKoiiKUhvwVeB8ArzsyL25EPiXY3l3YH9lGOZvrIVXX5UO2+BqPvn3v8u4cWP47jsRLSCC5uuvpbcmiGfm2WehRw8ZG1O54aXqDBGVtSWCoiiKotQ0fBU4vwX+BzQHrrXWOmQAscBblWFYeUhKgj1u6c7XXiv9oEDEyJw58M9/yjg4WIriXX65jIOCJCH4pptkHBgotWeqwyNT1SGiomKqWTPP22nTSUVRFKW2UO5p4jWBDh3i7F13bWHWLBn36yeC5HNHAG36dJmW7RQ5v/wixfMq0qiyKqjKXk+eauIEBYkgdG/4qS0RFEVRlJqAP3pRNXN6aowxXn7TC24enSolLCzOXnTRFjZulPHnn0P9+tK2oDZTlb2evImpsDARi1onR1EURalJ+KMXVbIxpo219hhwHGnXUOw8juXV4hOJjKRA3IB05z4XqMpeT97yak6cgOPH/X8+RVEURakKShI4w4ETbu9rXCyrptaQqShV2eupuhpnKoqiKEpl4lXgWGv/6/Z+bZVYowBV2zW7OhtnKoqiKEplUZIHpwBjTB7gDFe5Lw8Djllra3jabu2jqrpmV6WYUhRFUZSqwieBg+TaeKIekO1lnVJLqCoxpSiKoihVRYkCxxjjmICNBaYZY9LdVgcClwI/VJJtiqIoiqIo5aI0D85djr8GuA3Ic1uXjfSnmuZ/sxRFURRFUcpPiQLHWtsBwBizBhhvrT1ZJVYpiqIoiqJUAJ9ycKy1wyrbEEVRFEVRFH/ha5IxxpjOwLVAO6Cu+zpr7a3+MsgYcxGwE1hhrb3RX8dVFEVRFOX8wddp4qOBlcC3QG9gM9AJmUX1pZ9tet5xfEVRFEVRlHLhazfxx4BHrbUDgLPATUAk8Bmw1l/GGGOuA04Bn/vrmIqiKIqinH/4KnAuBpY73ucAIdbaLET43O0PQ4wxjR3H+0Mp2001xmwxxmxJTk72x6kVRVEURTnH8FXgpAHBjvdHgAsd7+sATf1ky+PAq9baQyVtZK1dZK2Ns9bGtWjRwk+nVhRFURTlXMLXJOOvgUHAbuAj4K/GmJ7AOGBDRY0wxsQAI4BeFT2WoiiKoiiKrwJnFtDQ8X4u0Ai4BtjrWFdRhiI5PQeNtAhvCAQaY7pZa2P9cHxFURRFUc4jfK2D87Pb+wzgTj/bsQhY5ja+BxE8/j6PoiiKoijnAb5OE28BYK1NdoyjgInAd9batypqhEM0ZbidLx3Icp5PURRFURSlLPgaonobeANYbIxpDqwDkoC7jDHh1tq/+tMoa+1cfx5PURRFUZTzC19nUUUDGx3vrwV+tNZ2B24G7qgMwxRFURRFUcqLrx6c+kC64/0I4H3H+2+AC/xtlKIoir/Jycnh8OHDZGVlVbcpiqL4QHBwMG3btiUoKKhc+/sqcPYB440xK4HLgaccy1shlYcVRVFqNIcPH6ZRo0ZERkbimK2pKEoNxVpLSkoKhw8fpkOHDuU6hq8hqkeBJ4EEYKO19mvH8lFIfypFUZQaTVZWFmFhYSpuFKUWYIwhLCysQh5XX6eJrzLGtAPCge1uqz5DmnAqiqLUeFTcKErtoaL/Xn0NUWGtPQocLbLsay+bK4qiKIqiVBu+hqgURVGUCtKwYcNiy1588UVef/31arDGP0yZMoUVK1ZUeBt/4rzPCQkJ9OjRo9TtfbEvPj6epKQkv9inVA0+e3AURVEU/zNt2rRKPb61FmstAQH6e7YixMfH06NHD8LDw6vbFMVH9BuvKMr5ydChxV8vvCDrMjI8r4+Pl/XHjxdfV07mzp3LggULHCYN5b777qNv37507tyZL7/8EoC8vDzuvfde+vTpQ3R0NC+99BIA6enpXHbZZcTGxhIVFcV7770HiOeia9euTJ8+ndjYWA4dOlTonJGRkTz44IMMGDCAuLg4vvnmG0aNGkWnTp148cUXARFG9957Lz169CAqKorly5cXLJ8xYwbdunVj9OjRHDt2rOC4W7duZciQIfTu3ZtRo0Zx5MiREq9927Zt9O/fn+joaMaNG8fJkydLvA/ueLt2XyjpGh577DH69OlDjx49mDp1KtZaVqxYwZYtW7jhhhuIiYkhMzPT43ZKzUIFjqIoSg0iNzeXTZs28cwzz/Doo48C8OqrrxIaGsrmzZvZvHkzL7/8Mvv37yc4OJjVq1fzzTffsGbNGv7whz8UPGj37NnDzTffzLfffkv79u2LneeCCy5gw4YNXHrppQUhmo0bNzJnzhwAVq1axbZt29i+fTufffYZ9957L0eOHGH16tXs2bOHnTt38vLLL/PVV18BUmforrvuYsWKFWzdupVbb72Vhx56qMRrvfnmm3nyySfZsWMHUVFRBdfr7T64U9K1l4a3awCYMWMGmzdvZteuXWRmZvLhhx9y7bXXEhcXx9KlS9m2bRv169f3uJ1Ss/A5RGWMaQXcBHQCZltrjxtjLgGSrLX7K8tARVGUSmHtWu/rQkJKXt+8ecnrK8D48eMB6N27NwkJCQB88skn7NixoyBPJDU1lX379tG2bVsefPBB1q1bR0BAAImJiRw9KnNB2rdvT//+/b2eZ+zYsQBERUWRnp5Oo0aNaNSoEcHBwZw6dYr169czadIkAgMDadWqFUOGDGHz5s2sW7euYHl4eDjDhw8HRFDt2rWLkSNHAuJ1atOmjdfzp6amcurUKYYMGQLA5MmTmTBhQon3wR1rrcdrb926dan32Ns1AKxZs4b58+eTkZHBiRMn6N69O2PGjCl2DF+3U6oPX5tt9gY+B/YD3ZFCf8eBkUBn4PrKMlBRFOV8ol69egAEBgaSm5sLyMP8ueeeY9SoUYW2jY+PJzk5ma1btxIUFERkZGRB3ZAGDRr4dJ6AgICC985xbm5uid4QT9N3rbV0796dDRs2+HCVpePpPrizdOlSr9fuC56uISsri+nTp7NlyxYuuOAC5s6d6/GYvm6nVC++hqgWAH+31vYCzrot/w9wid+tUhRFUQoYNWoUCxcuJCcnB4C9e/dy5swZUlNTadmyJUFBQaxZs4YDBw747ZyDBw9m+fLl5OXlkZyczLp16+jbty+DBw9m2bJl5OXlceTIEdasWQPAxRdfTHJycoHAycnJ4bvvvvN6/NDQUJo2bVqQX/PGG28UeHN8oSLX7u0anCKlefPmpKenF5pZ1ahRI9LS0krdTqk5+Bqi6g38xsPyI0i7BkVRFKUUMjIyaNu2bcF41qxZPu132223kZCQQGxsLNZaWrRowbvvvssNN9zAmDFjiIuLIyYmhi5duvjN1nHjxrFhwwZ69uyJMYb58+fTunVrxo0bxxdffEFUVBSdO3cuECV169ZlxYoVzJw5k9TUVHJzc7n77rvp3r2713O89tprTJs2jYyMDDp27MiSJUt8tq8i1+7tGpo0acLtt99OVFQUkZGR9OnTp2CfKVOmMG3aNOrXr8+GDRu8bqfUHIwvSVnGmKPAVdbarcaYNKCntfZnY8wVwCJrbbvKNtQTcXFxdsuWLdVxakVRahnff/89Xbt2rW4zFEUpA57+3Rpjtlpr40rb19cQ1XvAI8YYZ6DWGmMikf5U2qpBURRFUZQaha8C5x6gGZAMhADrgR+RTuIPV45piqIoiqIo5cPXZpungUHGmOFALCKMvrHWflaZximKoiiKopQHrwLHGJMHtLHWHjPGLAZ+Z639AviiyqxTFEVRFEUpByWFqDIBZ2e4yUBw5ZujKIqiKIpScUoKUX0FvGuM2QoY4FljTKanDa21t1bUEEcC8wvACCTf50fgQWvtvyp6bEVRFEVRzi9K8uDchBTyawJYIAxo4eXlD+oAh4AhQCgwG3jbMVtLURSl1tOwYcNiy1588UVef/31arDGPzj7WFV0m+ogPj6epKSkgvFtt93G7t27S9xn6NChlFaeZO3atfzqV78qcZtt27bx8ccf+26sUma8enCstUeBewGMMfuBSdbalMoyxFp7BpjrtuhDx3l7AwmVdV5FUZTqZNq0aZV6fGst1loCArS3sjt5eXnEx8fTo0cPwsPDAXjllVeq7Pzbtm1jy5YtXHXVVVV2zvMNn77x1toOlSluPOFo7tkZ8F7rW1EUpZwMHQrx8fI+J0fG//ynjDMyZLx8uYxTU2W8apWMjx+X8QcfyPiXX8pvx9y5c1mwYIHDpqHcd9999O3bl86dOxe0McjLy+Pee++lT58+REdH89JLLwGQnp7OZZddRmxsLFFRUbz33nsAJCQk0LVrV6ZPn05sbCyHDh0qdM7IyEgefPBBBgwYQFxcHN988w2jRo2iU6dOvPjii4AIo3vvvZcePXoQFRXFcsfNsNYyY8YMunXrxujRozl27FjBcbdu3cqQIUPo3bs3o0aN4siRIyVe+7Zt2+jfvz/R0dGMGzeOkydPlngf3Fm7di2DBw9m3LhxdOvWjWnTppGfnw/AnXfeSVxcHN27d+eRRx4pdN2PPfYYgwYN4q233mLLli3ccMMNxMTEkJmZWcg74+0Y3vj3v/9Nly5dGDRoEKucXxRg06ZNDBw4kF69ejFw4ED27NlDdnY2c+bMYfny5cTExLB8+XKP2ykVxKnui76AWUCw23uvL2/HKO8LCAI+A17ysG4qsAXY0q5dO6soiuILu3fvLjQeMsTaJUvkfXa2jN94Q8Znzsh42TIZnzol45UrZZycLOP335fxkSO+2dCgQYNiyx555BH71FNPOWwaYmfNmmWttfajjz6yl112mbXW2pdeesk+/vjj1lprs7KybO/eve3PP/9sc3JybGpqqsOmZNupUyebn59v9+/fb40xdsOGDR7taN++vX3hhRestdbefffdNioqyp4+fdoeO3bMtmjRwlpr7YoVK+yIESNsbm6u/eWXX+wFF1xgk5KS7MqVKwuWJyYm2tDQUPvOO+/Y7OxsO2DAAHvs2DFrrbXLli2zt9xyi7XW2smTJ9t33nmnmB1RUVF27dq11lprZ8+ebX/3u9+VeB/cWbNmja1Xr5796aefbG5urh0xYkTBOVJSUqy11ubm5tohQ4bY7du3F1z3k08+WXCMIUOG2M2bN3sceztG0X2stTYzM9O2bdvW7t271+bn59sJEybY0aNHW2utTU1NtTk5OdZaaz/99FM7fvx4a621S5Yssb/97W8LjuFtu/Odov9urbUW2GJ90BIlJRnfBbwGZDnee9VIwNPl1FfFMMYEAG8A2cCMYiezdhGwCKRVg7/OqyjK+cXata73QUGFxyEhhcehoYXHzZsXHrdu7T+7xo8fD0Dv3r1JSEgA4JNPPmHHjh0FeSypqans27ePtm3b8uCDD7Ju3ToCAgJITEzk6NGjALRv357+/ft7Pc/YsWMBiIqKIj09nUaNGtGoUSOCg4M5deoU69evZ9KkSQQGBtKqVSuGDBnC5s2bWbduXcHy8PBwhg8fDsCePXvYtWsXI0eOBMTr1KZNG6/nT01N5dSpUwV9oCZPnsyECRNKvA9F6du3Lx07dgRg0qRJrF+/nmuvvZa3336bRYsWkZuby5EjR9i9ezfR0dEATJw40atN7pR0jKL88MMPdOjQgYsuugiAG2+8kUWLFhVc5+TJk9m3bx/GmIKGqZ7uhy/bKb5TUg5OB0/vKxMj/etfRRp4XmWt1U9YUZTzinr1pCNOYGAgubm5gHjan3vuOUaNGlVo2/j4eJKTk9m6dStBQUFERkYWdLpu0KCBT+cJCAgoeO8c5+bmOj3mHpH/qgtjraV79+4F3cQriqf7UJodxhj279/PggUL2Lx5M02bNmXKlCkF9wRKvy9AqcfwxRYns2fPZtiwYaxevZqEhASGDh1aoe0U36lQ1pkxpr0x5m1/GQMsBLoCY6y1HqekK4qinG+MGjWKhQsXFvyq37t3L2fOnCE1NZWWLVsSFBTEmjVrOHDggN/OOXjwYJYvX05eXh7JycmsW7eOvn37MnjwYJYtW0ZeXh5HjhxhzZo1AFx88cUkJycXCJycnBy++857CmVoaChNmzYtyK954403Crw5vrJp0yb2799Pfn4+y5cvZ9CgQZw+fZoGDRoQGhrK0aNH+de/vFcaadSoEWlpacWWl+UYAF26dGH//v389NNPALz11lsF61JTU4mIiABEkHo7t7ftlPLjU6uGEmgCXOMPQ4wx7YE7gLPAL25q+A5r7VJ/nENRFKU6ycjIoG3btgXjWbNm+bTfbbfdRkJCArGxsVhradGiBe+++y433HADY8aMIS4ujpiYGLp06eI3W8eNG8eGDRvo2bMnxhjmz59P69atGTduHF988QVRUVF07ty5QJTUrVuXFStWMHPmTFJTU8nNzeXuu++me/fuXs/x2muvMW3aNDIyMujYsSNLliwpk40DBgzg/vvvZ+fOnQUJxwEBAfTq1Yvu3bvTsWNHLrnkEq/7T5kyhWnTplG/fv1CnqeePXv6fAyA4OBgFi1axOjRo2nevDmDBg1i165dAPzxj39k8uTJPP300wXhPIBhw4bxl7/8hZiYGB544AGv2ynlx5Tkhix1Z2N6Ij2pAv1nku/ExcXZ0uoRKIqiAHz//fd07dq1us1Q/MTatWtZsGABH374YXWbolQinv7dGmO2WmvjSttXCyMoiqIoinLOUdEQlaIoiqJUOUOHDtVEXKVEShQ4xpj3S9m/sR9tURRFURRF8QuleXBKq16cAuz3ky2KoiiKoih+oUSBY629paoMURRFURRF8ReaZKwoiqIoyjmHChxFUZQqIjAwkJiYGHr06MGYMWM4deqU38+xdu1afvWrX5Vpn6SkJK699toKn9u9cai35XPmzOGzzz6r8LmqC/eGnBXZpjp45plnyMjIKBhfddVVpX4HIyMjOX78eInbxMfHM2NGsc5KhVi7di1fffWV78b6ARU4iqIoVUT9+vXZtm0bu3btolmzZjz//PPVbRK5ubmEh4cX9LmqbB577DFGjBhRacfPy8urtGPXZvLy8ooJnI8//pgmTZpUyflV4CiKolQBd98NQ4f693X33WWzYcCAASQmJhaMn3rqKfr06UN0dDSPPPJIwfLHH3+cLl26MHLkSCZNmlTgCXH3Ehw/fpzIyMhi59i0aRMDBw6kV69eDBw4kD179gDyi3vChAmMGTOGyy+/nISEBHr06AFI1eSYmBhiYmJo0aIFjz76aIn2zZs3j4svvpgRI0YUHL8kpkyZUiCmIiMjeeSRR4iNjSUqKooffvgBgDNnznDrrbfSp08fevXqxXvvvQdAQkICl156KbGxscTGxhY8MNeuXcuwYcO4/vrriYqKKnbOhg0bct9999G7d29GjBjBpk2bGDp0KB07duT992WycFZWFrfccgtRUVH06tWroAVFZmYm1113HdHR0UycOJHMTFcXoU8++YQBAwYQGxvLhAkTSE9PL/HaP//8c3r16kVUVBS33norZ8+eLfE+uBMfH8/VV1/NFVdcwcUXX1zwuQD8+te/pnfv3nTv3r2gyafzuufMmUO/fv2YN28eSUlJDBs2jGHDhhWc1+md8XYMbyxZsqSgkvX//ve/guUffPAB/fr1o1evXowYMYKjR4+SkJDAiy++yN/+9jdiYmL48ssvPW7nb7QOjqIoShWTl5fH559/zm9+8xtAHpT79u1j06ZNWGsZO3Ys69atIyQkhJUrV/Ltt9+Sm5tLbGwsvXv39vk8Xbp0Yd26ddSpU4fPPvuMBx98kJUrVwKwYcMGduzYQbNmzQp1637llVcAOHDgAKNGjWLKlCle7WvQoAHLli0rt30AzZs355tvvuGFF15gwYIFvPLKK8ybN4/hw4ezePFiTp06Rd++fRkxYgQtW7bk008/JTg4mH379jFp0qQCkbdp0yZ27dpFhw7Fe0OfOXOGoUOH8uSTTzJu3DgefvhhPv30U3bv3s3kyZMZO3ZsgTdt586d/PDDD1x++eXs3buXhQsXEhISwo4dO9ixYwexsbGAiMonnniCzz77jAYNGvDkk0/y9NNPM2fOHI/XmZWVxZQpU/j888/p3LkzN998MwsXLuRuhzL2dB+K4rzGkJAQ+vTpw+jRo4mLi2Px4sU0a9aMzMxM+vTpwzXXXENYWBhnzpyhR48ePPbYYwAsXryYNWvW0Lx582LH9nYMTxw5coRHHnmErVu3EhoayrBhw+jVqxcAgwYNYuPGjRhjeOWVV5g/fz5//etfmTZtGg0bNuSee+4B4OTJkx638ycqcBRFOe945pnqOW9mZiYxMTEkJCTQu3dvRo4cCYjA+eSTTwoeEunp6ezbt4+0tDSuvvpq6tevD8CYMWPKdL7U1FQmT57Mvn37MMYUNOsEGDlyJM2aNfO4X1ZWFhMmTOAf//gH7du357nnnvNq37hx4wgJCQFg7NixZbshwPjx4wHo3bs3q1atAuR+vP/++wXeqqysLA4ePEh4eDgzZsxg27ZtBAYGsnfv3oLj9O3b16O4AemTdcUVVwAQFRVFvXr1CAoKIioqqkDcrV+/nrvuugsQYdi+fXv27t3LunXrmDlzJgDR0dFER0cDsHHjRnbv3l3Qpyo7O5sBAwZ4vc49e/bQoUMHOnfuDMDkyZN5/vnnCwSOp/tQlJEjRxaIjvHjx7N+/Xri4uJ49tlnWb16NQCHDh1i3759hIWFERgYyDXX+NYu0tsxPPH1118zdOhQWrRoAcDEiRMLPovDhw8zceJEjiP8x4MAAA/eSURBVBw5QnZ2ttfPxNftKoKGqBRFUaoIZw7OgQMHyM7OLvAaWGt54IEH2LZtG9u2bePHH3/kN7/5DSX1CqxTpw75+fmACABPzJ49m2HDhrFr1y4++OCDQts1aNDA67GnTZvG+PHjC3JlvNkH4NYYuVzUq1cPkATs3NzcgvOtXLmy4HwHDx6ka9eu/O1vf6NVq1Zs376dLVu2kJ2d7dP1BAUFFdgZEBBQcM6AgIBC5/SGp2u01jJy5MgCG3fv3s2rr77q9Ril9X30dB9Ks8MYw9q1a/nss8/YsGED27dvp1evXgWfc3BwMIGBpbeKLOkY3vD2ud91113MmDGDnTt38tJLL3k9jq/bVQQVOIqiKFVMaGgozz77LAsWLCAnJ4dRo0axePHighyOxMREjh07xqBBgwqESXp6Oh999FHBMSIjI9m6dSuA1wTh1NRUIiIiAMnh8IXnn3+etLQ07r///oJl3uwbPHgwq1evJjMzk7S0ND744IMy3wtPjBo1iueee65AFHz77bcF19OmTRsCAgJ44403/JpQPHjwYJYuXQrA3r17OXjwIBdffHGh5bt27WLHjh0A9O/fn//973/8+OOPgHSKd/coFaVLly4kJCQUbP/GG28UdGL3lU8//ZQTJ06QmZnJu+++yyWXXEJqaipNmzYlJCSEH374gY0bN3rdv1GjRqSlpRVbXpZjAPTr14+1a9eSkpJCTk4O77zzTqFjOb9zr732mtdze9vOn6jAURRFqQZ69epFz549WbZsGZdffjnXX389AwYMICoqimuvvZa0tDT69OnD2LFj6dmzJ+PHjycuLo7Q0FAA7rnnHhYuXMjAgQO9TuP94x//yAMPPMAll1zisxhYsGABO3fuLEg0fvHFF73aFxsby8SJE4mJieGaa67h0ksv9cu9mT17Njk5OURHR9OjRw9mz54NwPTp03nttdfo378/e/fuLdFrU1amT59OXl4eUVFRTJw4kfj4eOrVq8edd95Jeno60dHRzJ8/n759+wLQokUL4uPjmTRpEtHR0fTv399jcrCT4OBglixZwoQJE4iKiiIgIIBp06aVycZBgwZx0003FdzvuLg4rrjiCnJzc4mOjmb27Nn079/f6/5Tp07lyiuvLEgydlKWYwC0adOGuXPnMmDAAEaMGFGQlwRSEmDChAlceumlhXJ9xowZw+rVqwuSjL1t509MaW6zmkxcXJytibUGFEWpeXz//fd07dq1us0oM+np6TRs2JCMjAwGDx7MokWLCj1QlPOD+Ph4tmzZwj/+8Y/qNqVK8fTv1hiz1VobV9q+mmSsKIpSg5k6dSq7d+8mKyuLyZMnq7hRFB9RgaMoilKDefPNN6vbBKUGMGXKFKZMmVLdZtQqNAdHUZTzhtockleU842K/ntVgaMoynlBcHAwKSkpKnIUpRZgrSUlJYXg4OByH0NDVIqinBe0bduWw4cPk5ycXN2mKIriA8HBwbRt27bc+6vAURTlvCAoKKhSqqUqilIzqVEhKmNMM2PMamPMGWPMAWPM9dVtk6IoiqIotY+a5sF5HsgGWgExwEfGmO3W2u+q1yxFURRFUWoTNcaDY4xpAFwDzLbWpltr1wPvAzdVr2WKoiiKotQ2apIHpzOQZ611b+axHSjUrMMYMxWY6hieNcbsqiL7FKE54LkuvFJZ6D2vevSeVz16z6ue2nrP2/uyUU0SOA2B1CLLUoFG7gustYuARQDGmC2+lGtW/Ife86pH73nVo/e86tF7XvWc6/e8xoSogHSgcZFljYHirU8VRVEURVFKoCYJnL1AHWPMRW7LegKaYKwoiqIoSpmoMQLHWnsGWAU8ZoxpYIy5BLgaeKOE3RZViXGKO3rPqx6951WP3vOqR+951XNO33NTk8qWG2OaAYuBkUAKcL+1VjvNKYqiKIpSJmqUwFEURVEURfEHNSZEpSiKoiiK4i9U4CiKoiiKcs5RKwWO9qwqO8aYesaYVx33K80Y860x5kq39ZcZY34wxmQYY9YYY9oX2XexMea0MeYXY8ysIscu977nC8aYi4wxWcaYf7otu97xeZwxxrzryEFzrivxO16Rfc8HjDHXGWO+d9yDn4wxlzqW6/e8EjDGRBpjPjbGnHRc/z+MMXUc62KMMVsd922rMSbGbT9jjHnSGJPieM03xhi39eXe91zCGDPDGLPFGHPWGBNfZF21fKdL2rfGYK2tdS/gLWA5UhxwEFIQsHt121WTX0ADYC4QiQjbXyE1hiKRapapwAQgGHgK2Oi275+BL4GmQFfgF+AKx7py73s+vYBPHPfhn45xd8f9H+z4Hr8JLHPb3ut3vCL7ng8vZJLCAaC/47se4Xjp97zy7vnHQLzj3rQGdgIzgbqOz+L3QD3HsgNAXcd+dwB7gLaOz2g3MM2xrtz7nmsvYDzwa2AhEO+2vFq+06XtW1Ne1W5AOT7oBkhDzs5uy94A/lLdttW2F7AD6f81FfiqyD3OBLo4xonA5W7rH8fxQK3IvufLC7gOeBsRmE6B8yfgTbdtOjm+141K+45XZN/z4QV8xf+3d//BVhZ1HMffH8Ek+ZFSiMqohKUoMwKFRjUkJWNkU1PiTEgzzZQ/UgeHIkz/0Gq0mtQmKvFHzTDZaGVqkZkTVlammRGSOCBk4A/AUEJRAUMFv/2xe+u55557zj333MvhPufzmtm55zz77LN7luU8e/fZvQtnVTnudt5/db4GOK3w/mrge8CpuW5UiNtQuFE+AJxbiDur40bZTNqyBuCrdO7gtKRN10u7r4SB+Iiquz2rJrSoPAOSpNGkulxNqruVHXGR/ibRemCCpIOBw4vxdK7vZtKWnqQRwOXAFyqiKuttPbljQv023kzaUpM0CJgCjJK0TtKm/Ljkjbid96fvALMlHShpDPAhYCmpDh6JfBfMHqGbeqVrnfc2bbtoVZvuNm2ffKo+MhA7OD3as8q6J2l/4EfADyNiLbXrdFjhfWUcTaZtB1cAiyNiY8XxevVWq403k7bsRgP7A2cA04BJwGTgUtzO+9O9pJvbS8AmYDnwCxpvyy8Cw/JcmmbStotWtekB8T0zEDs43rOqCZL2Iz2yeBWYmw/XqtMdhfeVcc2mLbU8IXIGsLBKdL16q9XGm0lbdv/JP6+JiM0RsRX4FnAabuf9In+n3E36S/RDSfMzDgaupPG2PALYkUdtmknbLlrVpgfE98xA7OB4z6peyr/ZLCb9ljsrIl7LUatJddhx3lDSvI7VEbEN2FyMp3N9N5O27KaTJnFvkPQMsACYJWkFXettHGki5WPUb+PNpC213OY2AdVucm7n/WMkcASwKCJeiYjngB+QOpWrgRMqRlVOoJt6pWud9zZtu2hVm+42bZ98qr7S6klAvQnALaSVIkOB99Jmq0SaqLcbgAeBYRXHR+U6nEWaEX8lnWfTf4M0BH0wMJ7U8Gc2m7bsATiQtKKkI3wTuD3XWcdw/rTcjm+m80qobtt4M2nbIZDmPP0NOCS3u/tIjwrdzvuvzh8HLgEGAwcBS0iPwTtWQs0jdcLn0nkl1HmkCcpjSHM+VtN1FVXDacsWcr0OIa1suim/HtyqNl0v7b4SWl6AXv5jjyQ9391JmlU/p9Vl2tcDcBTpt9pdpOHFjvDJHD8DWEsa4v8jMLaQ9gDSHmEvAc8C8yuu3eu07RQorKLK7+fk9rsTuAMYWYir2cabSVv2QJqDcx3wAmlp63eBITnO7bx/6nxSrpNtwFbgNuCQHDcZeCjX2wpgciGdgKuA53O4is6rpnqdtkwhf3dERfhKK9t0rbT7SvBeVGZmZlY6A3EOjpmZmVlN7uCYmZlZ6biDY2ZmZqXjDo6ZmZmVjjs4ZmZmVjru4JiZmVnpuINjZtYkSWMlhaQprS6LmSXu4Ji1EUmjJS2U9E9JuyRtkfSApAslDSuc92S+YUc+b6OkJZI+UuWaUQjbJS2XdPre/WQttxE4DHgYQNL0XB9vaW2xzNqXOzhmbULSWNJfg50JXAa8A/gAaQuJU4CPViS5nHTTPgaYDTwJLJF0TZXLn5PPPRFYCdwm6d19/RlqkfSGvZlfUUTsiYhnImJ3q8pgZp25g2PWPq4HXgemRMQtEfFoRKyKiJ9HxMdI+1cVbc837Q0R8eeI+DxwATBX0vsrzn0hn7uWtEfQLrp2mIBOj3PmSLo/jxCtlXRqxXnHS7orjwptkfQTSYcW4m+U9CtJF0vaRNpksypJUyX9XtJOSS9KukfS4TlupqT7JG2T9LykuyUd10h5i4+ockfyDznq3/n4jT3Jy8z6jjs4Zm1A0kjgg8C1EbGz2jnRs31bFpP2G5rV3QmRdqnfTdoTqparSPtETQJ+C9whaUwu72HAn4BVwEmkfW+GAb+UVPzeOpm0w/RM0ihUF5Imkjoc60ibj04FbiVtVghpU9Jv53ymkzYRvLPKiFC35a2wkf/XzwTSyNa8BvMysyYNrn+KmZXA20mbE/6jeDCPfByU394cEefVukhE7JH0GDCuWrykA4CLgBHAPXXKdH1E3JrTzSN1wM4HLs0/V0bExYVrf4q0qeIUYFk+vAv4TES8UiOfL+ZrnVs4tqbwmX5W8Rk+Tdpg8CTg/h6W939yHT2f326JiK29yMvMmuQRHLP2No00IrEMGNLDNCLtZlx0k6QdwMvAfGBBRPy6znX+0vEiIl4H/gocnw+9E3ifpB0dgTQyAnB04Rqr6nRuIO1I3W1nS9LRkn4sab2kjp2T9wOObKC8PdJAXmbWJI/gmLWHdaROyfjiwYh4AkDSyz25iKRBpEnHyyqiLgKWAi9FxJamS5tu+ncBC6rEPVt4XfVxWwXVib8TeBr4bP65G3gU6I/HRnszL7O25hEcszYQEc8BvyFNEB5W7/waziY90rq94vgzEbGuwc7N1I4XkkR6TNPx6GgFaf7KU/m6xbC9wTKvIK0W60LSm4HjgK9HxO8iYg0wnOq//NUqb6VX889BvczLzJrkDo5Z+7iA9H/+IUln5lVKx0g6E5gI7Kk4f7ikQyUdIek9khYC1wKLIuLePijP+ZLOkHQsaeLtUaSVXuR83gT8VNK7JI2TNEPS9yUNbzCfq4HJOe1EScdKOlvSkaQJ01uBcyS9TdLJwA2kkZVGylvpKdKI2YcljcqdykbyMrMmuYNj1iYi4nHSfJSlwBXA30mjG/OB64DPVST5ErCZ9HjrVuCtwOkRcWEfFemSnPdK0iqoj0fEplzWf5FWPL2ey7ua1Ol5JYcei4iHSauwxgMPkubOzAZey3NpPkFaibUq53FZN3l0W94qeT4NfBn4GumR2qIG8zKzJqlnK0PNzPpG/jsxTwAnRsTy1pamvoFWXjNLPIJjZmZmpeMOjpmZmZWOH1GZmZlZ6XgEx8zMzErHHRwzMzMrHXdwzMzMrHTcwTEzM7PScQfHzMzMSue/XUMcSSdNRIUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f22913cb3c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,3))\n",
    "\n",
    "plt.xlabel(\"GDP per capita\")\n",
    "plt.ylabel('Life satisfaction')\n",
    "\n",
    "plt.plot(list(sample_data[\"GDP per capita\"]), list(sample_data[\"Life satisfaction\"]), \"bo\")\n",
    "plt.plot(list(missing_data[\"GDP per capita\"]), list(missing_data[\"Life satisfaction\"]), \"rs\")\n",
    "\n",
    "X = np.linspace(0, 110000, 1000)\n",
    "plt.plot(X, t0full + t1full * X, \"r--\", label=\"Linear model on all data\")\n",
    "plt.plot(X, t0 + t1*X, \"b:\", label=\"Linear model on partial data\")\n",
    "\n",
    "ridge = linear_model.Ridge(alpha=10**9.5) # 岭回归，一种正则化方法，降低过度拟合\n",
    "Xsample = np.c_[sample_data[\"GDP per capita\"]]\n",
    "ysample = np.c_[sample_data[\"Life satisfaction\"]]\n",
    "ridge.fit(Xsample, ysample) # 用去掉missing_data的数据进行训练\n",
    "t0ridge, t1ridge = ridge.intercept_[0], ridge.coef_[0][0] # 截距与系数\n",
    "plt.plot(X, t0ridge + t1ridge * X, \"b\", label=\"Regularized linear model on partial data\") # 绘制部分数据（指sample_data)训练的正则化线性模型\n",
    "\n",
    "plt.legend(loc=\"lower right\")\n",
    "plt.axis([0, 110000, 0, 10])\n",
    "save_fig('ridge_model_plot')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "backup = oecd_bli, gdp_per_capita\n",
    "\n",
    "def prepare_country_stats(oecd_bli, gdp_per_capita):\n",
    "    return sample_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Replace this linear model:\n",
    "# 用下面的k近邻回归模型替换此线性模型\n",
    "model = sklearn.linear_model.LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# with this k-neighbors regression model:\n",
    "# 用这个k近邻回归模型替换上面的线性模型\n",
    "model = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[5.76666667]]\n"
     ]
    }
   ],
   "source": [
    "X = np.c_[country_stats[\"GDP per capita\"]]\n",
    "y = np.c_[country_stats[\"Life satisfaction\"]]\n",
    "\n",
    "# Train the model\n",
    "# 使用k近邻回归模型训练数据\n",
    "model.fit(X, y)\n",
    "\n",
    "# Make a prediction for Cyprus\n",
    "# 预测塞浦路斯的数据\n",
    "X_new = np.array([[22587.0]])  # Cyprus' GDP per capita 塞浦路斯的人均GDP\n",
    "print(model.predict(X_new)) # outputs [[ 5.76666667]] 输出生活满意度5.76666667"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "nav_menu": {},
  "toc": {
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 6,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": true
  },
  "toc_position": {
   "height": "616px",
   "left": "0px",
   "right": "20px",
   "top": "106px",
   "width": "213px"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
